当我在Chrome for iOS(iPhone和iPad)中测试我的网络应用程序时,我注意到用户代理字符串后面附加了一个奇怪的ID,例如:
alert(navigator.userAgent)
会产生这样的东西(注意末尾的"3810AC74-327F-43D7-A905-597FF9FDFEAB"部分):
Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X; en-us) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/21.0.1180.77 Mobile/9B206 Safari/7534.48.3 (3810AC74-327F-43D7-A905-597FF9FDFEAB)
此ID似乎是特定于选项卡的,即使在转到其他网站时也会持续存在。
我的问题是,如果有人知道这件事,以及它可能被用来做什么?
更新:
附加此GUID是为了克服UIWebView的限制。感谢eric在评论中指出这一点。
该ID与跟踪没有任何关系。
有一个chromium错误详细说明了它的必要性:基本上,它是实现选项卡所必需的。
来自错误跟踪器:
在iOS中没有API可以知道,在网络层中UIWebView网络请求来自。
[…]解决方案[…]所有UIWebViews都会获得添加到用户代理字符串中的tabID(仅在设备本地)。
你可能还想查看一些推特帖子,讨论更多信息。
这真的,真的,看起来像一个邪恶的"超级cookie"(间谍软件将GUID放在你的用户代理字符串上)。
- http://www.pcpitstop.com/betapit/tips/SecGUID.asp?conid=24935364&report=安全性
- http://blogs.msdn.com/b/ieinternals/archive/2009/10/08/extending-the-user-agent-string-problems-and-alternatives.aspx
奇怪的是,如果是这样的话,它是如何在你的两台设备上发生的。这是网络服务器也收到的用户代理吗?