Что такое файл cookie только для хоста?

Я хотел бы знать, что такое файл cookie host only.

При получении form auth браузер получает в заголовках файл cookie JSESSIONID, показанный как host only.


person jacktrades    schedule 12.09.2012    source источник


Ответы (3)


Прежде всего, foo.com не может установить файл cookie, который может быть прочитан bar.com. Host-only защищает только example.com файлы cookie от чтения пользователем bar.example.com.

Из RFC 6265 относительно настройки файла cookie и его атрибута Domain:

If the domain-attribute is non-empty:

  If the canonicalized request-host does not domain-match the domain-attribute:

    Ignore the cookie entirely and abort these steps.

  Otherwise:

    Set the cookie's host-only-flag to false.

    Set the cookie's domain to the domain-attribute.

Otherwise:

  Set the cookie's host-only-flag to true.

  Set the cookie's domain to the canonicalized request-host.

Что это значит

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

Например, если файл cookie установлен www.example.com, а атрибут Domain не указан, файл cookie будет установлен с доменом www.example.com, и файл cookie будет использоваться только для хоста.

Другой пример: если файл cookie установлен www.example.com, а атрибут Domain указан как example.com (таким образом, файл cookie будет отправлен также на foo.example.com), файл cookie будет установлен с доменом example.com (или, возможно, .example.com некоторыми браузерами, которые используют точку от предыдущий RFC 2109 для обозначения не только для хоста) и файл cookie не будет файлом cookie только хоста.

Отправка файлов cookie описана в разделе 5.4 относительно того, когда браузер отправляет заголовок файла cookie:

         The cookie's host-only-flag is true and the canonicalized
         request-host is identical to the cookie's domain.
      Or:
         The cookie's host-only-flag is false and the canonicalized
         request-host domain-matches the cookie's domain.

Таким образом, файл cookie с доменом example.com и host-only как ложный отправляется на foo.example.com . Если для host-only установлено значение true, файл cookie example.com отправляется только example.com.

person SilverlightFox    schedule 04.02.2015
comment
Просто наткнулся на это на сайте клиента и пошел искать. Ваш комментарий ясен и понятен. Реквизит для него. - person spoorlezer; 31.03.2015
comment
Отличное описание, спасибо. Стоит отметить, что IE намеренно не поддерживает это (blogs.msdn.microsoft.com/ieinternals/2009/08/20/), и даже последний IE 11 по-прежнему отправляет файлы cookie на поддомены, даже если был установлен атрибут домена. - person sparrowt; 02.03.2017
comment
Последнее предложение неверно. Это должно быть так: Итак, файл cookie с доменом example.com и host-only как false отправляется на foo.example.com . Если host-only равно true, example.com отправляется только example.com. - person SkrewEverything; 13.09.2020
comment
@SkrewEverything Хорошо подмечено. Первый, кто заметил мою *преднамеренную ошибку за пять лет! *кашель - person SilverlightFox; 14.09.2020
comment
@sparrowrt в конце концов (после вашего комментария) это было исправлено в IE и Edge: «В Windows 10 RS4 (апрель 2018 г.) и Edge, и Internet Explorer соответствуют другим браузерам». (из часто задаваемых вопросов, на которые вы ссылались) - person Neil Madden; 09.11.2020

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

Вы не хотите отправлять этот файл cookie только для хоста для рекламных кампаний, так как он может содержать конфиденциальную информацию.

person jacktrades    schedule 18.12.2012
comment
Ваш ответ пришел через 3 года после SilverLightFox и во всех отношениях не так хорош (и даже немного вводит в заблуждение). Я понятия не имею, почему вы решили написать свой собственный ответ вместо того, чтобы выбрать другой. - person MyUsername112358; 20.05.2020
comment
@ MyUsername112358 У вас это наоборот. Ответ SilverLightFox вышел чуть более чем через 2 года после этого. - person Mark Ormston; 20.07.2020

Флаг host-only-flag куки имеет значение true, а канонизированный хост-запрос идентичен домену куки.

http://tools.ietf.org/html/rfc6265#section-5.4

person Suriya    schedule 12.09.2012