在服务器上,是否可以识别浏览器中运行的 Flash 客户端发出的请求与常规 XMLHttpRequest 发出的请求?
我注意到使用 flash 发出的请求有这个 header :
X-Requested-With:ShockwaveFlash/25.0.0.127
这是标准 header ,还是不同浏览器\Flash 版本的行为不同?
最佳答案
您可以使用 HTTP header Referer
来检查请求是由 Flash 还是 JavaScript 发出的。如果请求是由 Flash 发出的,则 Referer
将是 .swf 对象的 URL。因此,如果 Referer
URL 包含 .swf
资源,则请求必须来自 Flash。
根据 ActionScript 3.0 document , Referer
是一个受限制的 header ,不能由最终用户定义。在 JavaScript 端,除非被 JS 程序员 hack,否则极不可能看到 Referer
为 .../xxx.swf
的 HTTP 请求。
对于X-Requested-With
,它不是标准的HTTP header,不可信。即使在 URLRequest API 中,X-Requested-With
也不受限制,可以由最终用户定义,引用 doc .
关于javascript - 如何识别 Flash 和 JavaScript 客户端发出的请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43229141/