19

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

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

example.comsub.example.com

我已经截获了对两个域的请求,并且似乎发送到每个域的 USER-AGENT HTTP 标头是不同的。

对 example.com 的请求有:

用户代理:Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) 像 Gecko

对 sub.example.com 的请求有:

用户代理: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

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

4

2 回答 2

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探索这个话题。

于 2013-08-01T22:54:33.443 回答
10

MSDN 上的官方微软文档:

引号:

对于许多旧网站,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 令牌执行此操作。

不是很好吗,他们说“像壁虎”?;)

于 2014-01-29T12:10:30.807 回答