好吧,我一直致力于在子域之间进行基于用户代理的共享会话保护。
在最近发布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)喜欢 壁虎
你知道这种奇怪的动态行为是什么原因吗?
答案 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”吗? ;)