Подтвердить что ты не робот

Почему document.cookie не показывает все файлы cookie для сайта?

Я иду на форум, который использует vBulletin 3.8. Когда я вхожу в систему, я использую firebug, чтобы узнать, какие файлы cookie были установлены. Я вижу эти файлы cookie:

__ utmb, __utmc, __utma, __utmz, bbsessionhash, vbseo_loggedin, bbpassword, bbuserid, bblastactivity, bblastvisit

Все они имели значение, и домен был идентичным.

Но когда я использую JavaScript для просмотра, он видит только эти файлы cookie:

__ utmb, __utmc, __utma, __utmz, vbseo_loggedin, bblastactivity, bblastvisit

В firebug я вижу только эти три файла cookie: bbsessionhash, bbpasword и bbuserid, которые были фактически установлены. HTTPOnly в столбце HTTPOnly. Что это значит и почему я не вижу эти файлы cookie в JavaScript с помощью document.cookie?

4b9b3361

Ответ 1

От http://en.wikipedia.org/wiki/HTTP_cookie:

Файлы cookie не отображаются напрямую клиентские программы, такие как JavaScript, если они были отправлены с флаг HttpOnly. С точки зрения вид сервера, единственный разница в отношении нормального Дело в том, что заголовок set-cookie строка добавляется новое поле, содержащее строка `HttpOnly ':

Set-Cookie: RMID=732423sdfs73242; expires=Fri, 31-Dec-2010 23:59:59 GMT; path=/; domain=.example.net; HttpOnly

Когда браузер получает такой cookie, предполагается использовать его как обычно в следующих HTTP-обменах, но не для того, чтобы клиентские сценарии. Флаг HttpOnly не является частью какого-либо стандарта и не реализован во всех браузерах.

Обновление с 2017 года: с 2009 года прошло много времени, а флаг заголовка HttpOnly стал стандартом, определенным в разделе

Существует нет способ доступа к файлам cookie HttpOnly из API-интерфейсов, отличных от HTTP. JavaScript. По дизайну, ни чтение, ни написание таких файлов cookie невозможно.