2010-10-12 47 views
2

我的脚本设置10个cookies和浏览器成功保存他们,但document.cookie只检索9双,缺少的是对如下:的JavaScript的document.cookie缺少一些对

auth:4ae9Mq1j6tjt7dV6kV6A0piHB6NnNjijBmecax9mA8cfDpSs6pnAcD7H1%2FUqWMIIB%2BbgtKIJ2w1L2GnXkgV2 

发生了什么? document.cookie中有字符限制吗? Cookie域与所有其他域相同。

回答

0

我有两个澄清的问题:

  1. 为什么你认为你的“浏览器保存成功”所有的饼干屑,如果最终屑似乎没有被存储在了document.cookie?
  2. 缺少的值是您最后尝试添加的值吗?如果是这样,根据您提供的信息,我认为该值太长而无法存储在Cookie中。

Cookie crumb字符串的大小取决于您的编码。

你可以阅读更多关于每个域here允许的最大饼干大小和数量。您可以阅读关于如果超出了不同浏览器的限制here会发生什么的较旧讨论。这些限制因浏览器而异。

RFC 2109指出浏览器应该支持至少4096字节的cookie大小,至少300个总cookie以及每个域或唯一主机至少20个cookie。 This article显示了2009年以来的cookie大小测试。This 2008 blog post注意到有关单个浏览器如何处理cookie的更多项目。

注意IE 7 and later每个域的cookie的数量限制为50,而早期版本的IE浏览器的有20个域名的限制。

RFC 2109和众多的在线参考建议,大约4096字节的最大尺寸是一个很好的一般假设坚持。如果你不能保持低于这个限制,你可能需要以某种方式将你的数据存储在服务器上。

如果不是cookie的大小是这样的问题,更多的信息上究竟如何你存储和检索你的cookie值将帮助小组解决您的问题。

+0

没有意识到,这个线程是如此陈旧,当我回答了。无论如何,我希望这个答案有助于某人。 – hotshot309 2011-07-09 15:41:27

5

的问题是,在服务器端与发送的HttpOnly饼干设置如下所述:发送这样http://en.wikipedia.org/w/index.php?title=HTTP_cookie#HttpOnly_cookie

Cookie不是直通的document.cookie访问。这通常用于帮助保护cookie值免受您网站上可能发生的XSS攻击。

你没有提到你正在使用服务器端的哪种技术来设置的cookie。如果你正在使用PHP,这个链接列出了可能的途径中HTTPOnly标志可以设置:

https://www.owasp.org/index.php/HttpOnly#Using_PHP_to_set_HttpOnly