javascript document.cookie отсутствует некоторые пары - PullRequest
2 голосов
/ 12 октября 2010

Мой сценарий настроил десять файлов cookie, и браузер успешно сохранил их, но document.cookie извлекает только девять пар, отсутствующая пара выглядит следующим образом:

auth:4ae9Mq1j6tjt7dV6kV6A0piHB6NnNjijBmecax9mA8cfDpSs6pnAcD7H1%2FUqWMIIB%2BbgtKIJ2w1L2GnXkgV2

Что случилось?Есть ли ограничение на число символов в document.cookie?Домен cookie такой же, как и все остальные.

Ответы [ 2 ]

7 голосов
/ 30 мая 2012

Проблема в том, что серверная сторона отправляет куки с настройкой 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

0 голосов
/ 04 июля 2011

У меня два уточняющих вопроса:

  1. Почему вы думаете, что ваш "браузер успешно сохранил" все ваши крошки печенья, если последняя крошка не сохраняется в document.cookie?
  2. Является ли пропущенное значение тем, которое вы пытались добавить последним? Если да, то из предоставленной вами информации я предполагаю, что значение слишком велико для сохранения в файле cookie.

Размер в байтах вашей строки крошки печенья зависит от вашей кодировки.

Подробнее о максимальном размере и количестве файлов cookie, допустимых для домена, можно узнать здесь . Вы можете прочитать старое обсуждение того, что произойдет, если вы превысите ограничение в разных браузерах здесь . Эти ограничения зависят от браузера.

RFC 2109 гласит, что браузеры должны поддерживать размер файлов cookie не менее 4096 байт, не менее 300 файлов cookie и не менее 20 файлов cookie на домен или уникальный хост. В этой статье показан тест размера файлов cookie с 2009 года. В этом блоге за 2008 год отмечены еще несколько пунктов о том, как отдельные браузеры обрабатывают файлы cookie.

Обратите внимание, что IE 7 и более поздние ограничивают количество файлов cookie на домен до 50, тогда как в более ранних версиях IE было ограничение 20 на домен.

RFC 2109 и многочисленные онлайн-ссылки предполагают, что максимальный размер около 4096 байт является хорошим общим допущением. Если вы не можете удержаться ниже этого предела, вам, вероятно, придется как-то хранить свои данные на сервере.

Если проблема не в размере файла cookie, дополнительная информация о том, как именно вы храните и извлекаете значения файлов cookie, поможет группе ответить на ваш вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...