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

时间:2013-08-01 22:37:50

标签: internet-explorer http http-headers user-agent internet-explorer-11

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

在最近发布IE 11预览版之前,我一直很努力,我感到非常惊讶。有2个子域名

example.com sub.example.com

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

对example.com的请求有:

  

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

对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;媒体   中心PC 6.0; .NET4.0C; .NET4.0E; BRI / 1; MS-RTC LM 8; rv:11.0)喜欢   壁虎

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:9)

MSDN上的官方Microsoft文档:

行情:

  

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

Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko
  

这是Windows 7上IE11的字符串:

Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko
  

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

不是很好,他们说“喜欢Gecko”吗? ;)