javascript - 如何识别 Flash 和 JavaScript 客户端发出的请求?

标签 javascript http flash http-headers xmlhttprequest

在服务器上,是否可以识别浏览器中运行的 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/

相关文章:

c++ - 接收 recv 数据直到流结束(使用 HTTP)?

java - 使用 HttpAsyncClients : keep connection alive for long time

flash - try-catch 不起作用?

JavaScript 原型(prototype)属性 : Prototype based Inheritance

javascript - 如何在 JavaScript 中使用递归函数检查数字是否为偶数

perl - 选项 Perl 中的 HTTP 请求

flash - 在 Flash CS5 中更改注册点的位置

flash - as2和as3之间的通信

javascript - 如何在 sapui5 MultiComboBox 中设置选定的项目?

javascript - 如何在React路由器上获取{match.params.id}的值