【问题标题】:New IE Update Breaks Typical Cookie Detection Methods - What To Do Now?新的 IE 更新打破了典型的 Cookie 检测方法 - 现在该怎么办?
【发布时间】:2011-09-14 04:57:42
【问题描述】:

最近对 IE 的更新(影响所有版本)重写了使用随机 8 位字母数字名称存储的 cookie,使大多数典型的 cookie 检测方法无用:

http://blogs.msdn.com/b/ieinternals/archive/2011/08/12/internet-explorer-9.0.2-update-changes-file-protocol-and-cookie-naming.aspx

有没有人遇到过这种情况,如果有,你做了什么来克服这个问题?不幸的是,我们不能忽视我们的 IE 用户,尽管我希望这可能是一个解决方案:)

更新:我用 JQuery 对此进行了标记,因为它会影响 JQuery 的 cookie 插件,JQuery UI Tabs 等流行脚本使用该插件来“记住”选项卡位置。

【问题讨论】:

  • 但是:IE 什么时候停止通过 HTTP 向服务器发送 cookie? IE。从什么时候开始不得不在纯 JS 中加载 cookie?我想,你可能会觉得丑陋,将服务器上的 cookie 转换为 JS/JSON 对象会起作用吗?当然,如果用户不想发送该 cookie,那么它会失败,但在这种情况下,我认为不做用户积极不想要的事情比无论如何都做更好。
  • 你能澄清你在问什么吗?当从网页中的 javascript 访问或从服务器通过 HTTP 请求发送时,Cookie 完全不变。我看到的唯一改变是存储在 IE9 内容目录中的 cookie 的文件名已经改变并且现在更加随机(使攻击者更难抓取)。我知道没有理由直接从任何 Web 应用程序访问这些文件。如果您有这样的原因,请澄清。
  • 如果在您的代码中您正在执行类似(伪代码)的操作:如果 cookiename.domain.com 存在,请执行此操作如果 cookie 名称现在是随机的,我将如何找到我正在寻找的 cookie生成一组数字和字母?
  • 改变您的工作方式并测试以查看是否存在某些内容发送的 cookie 中。如果您尝试基于从其他站点设置的 cookie 来做某事,那么您可能会不走运。
  • Blair,如果这是读取由不同站点设置的 cookie 的情况,您可能是对的,但在我们的例子中,它读取的是我们以编程方式设置的 cookie 名称本身。抱歉,我在最初的问题中没有澄清这一点。

标签: jquery internet-explorer cookies


【解决方案1】:

由于您已使用 JQuery 标记了此问题(并且此更改对 JQuery 和 JavaScript 完全透明),我认为您可能对到底更改了什么感到困惑。

正如我的博文中所述,最近的代码更改既不会影响 cookie 的发送方式,也不会影响在本地正确用于枚举 cookie 的 API(InternetGetCookie 和 FindFirstURLCacheEntry)。任何依赖文本文件名称的代码都已经很脆弱了,因为这些文件的名称从未得到保证,而且已经存在文件名完全随机化的情况。

【讨论】:

  • 埃里克,我忘了包括这样一个事实,在我们的例子中,我们在 JQuery 的 Cookie 中遇到了这个问题,它读取了 cookie 的名称......抱歉有任何混淆。我确实对您的断言表示异议,即“依赖 cookie 的名称是脆弱的,并且永远无法保证”——我们正在以编程方式设置 cookie 的名称,那么这怎么能保证呢?阅读其他网站的 cookie,当然 - 阅读你自己的 - 我认为不会。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-20
  • 2016-02-21
  • 2021-04-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多