IE 11将不同的User-Agent标头发送到不同的子域

Woo*_*Dzu 18 internet-explorer user-agent http http-headers internet-explorer-11

好吧,我一直致力于在子域之间进行基于用户代理的共享会话保护.

我非常惊讶它在最近发布IE 11预览版之前一直运行良好.有2个子域

example.comsub.example.com

我拦截了对两个域的请求,似乎发送到每个域的USER-AGENT HTTP Header是不同的.

对example.com的请求有:

User-Agent:像Gecko一样的Mozilla/5.0(Windows NT 6.1; WOW64; Trident/7.0; rv:11.0)

对sub.example.com的请求有:

User-Agent:Mozilla/5.0(Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C ; .NET4.0E; BRI/1; MS-RTC LM 8; rv:11.0)和Gecko一样

你知道这种奇怪的动态行为是什么原因吗?

Eri*_*Law 19

Microsoft将该站点配置为使用UA欺骗(通过兼容性视图列表),并导致IE发送自定义UA字符串.

2008年在IE8中启用了基于CompatView的UA欺骗:http: //blogs.msdn.com/b/ie/archive/2008/08/27/introducing-compatibility-view.aspx

在IE10 +中,它变得更加丰富,每个站点都有欺骗性以实现最佳体验.请参阅http://blogs.msdn.com/b/ieinternals/archive/2013/09/21/internet-explorer-11-user-agent-string-ua-string-sniffing-compatibility-with-gecko-webkit.aspx探讨这个话题.

  • @EricLaw:这也是我的第一反应,但请注意,它向两台服务器发送相同的版本号。这两个 UA 都是 `rv:11.0`;“旧的 IE7 用户代理字符串”也不是。 (2认同)

met*_*ngs 9

MSDN上的官方Microsoft文档:

行情:

对于许多传统网站,IE11的一些最明显的更新涉及用户代理字符串.以下是Windows 8.1上针对IE11报告的内容:

Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko
Run Code Online (Sandbox Code Playgroud)

这是Windows 7上IE11的字符串:

Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko
Run Code Online (Sandbox Code Playgroud)

在极少数情况下,可能需要唯一识别IE11.使用Trident令牌执行此操作.

不是很好,他们说"像壁虎"?;)