在服务器上,是否可以识别浏览器中运行的Flash客户端发出的请求与常规XMLHttpRequest发出的请求?
我注意到使用闪存发出的请求有这个标题:
X-Requested-With:ShockwaveFlash/25.0.0.127
这是标准标题,或者这是不同浏览器\ flash版本的行为?
答案 0 :(得分:1)
您可以使用HTTP标头Referer
来检查请求是由Flash还是JavaScript生成的。如果Flash发出请求,则Referer
将是.swf对象的URL。因此,如果Referer
网址包含.swf
资源,则该请求必须来自Flash。
根据ActionScript 3.0 document,Referer
是受限制的标头,无法由最终用户定义。在JavaScript方面,除非被JS程序员攻击,否则很难看到Referer
为.../xxx.swf
的HTTP请求。
对于X-Requested-With
,它不是标准的HTTP标头,也不可信任。即使在URLRequest API中,X-Requested-With
也不受限制且可由最终用户定义,请参阅doc。