Что означает префикс точки в домене cookie?

введите описание изображения здесь

В чем разница между local.test.com а также .local.test.com? Скриншот из Chrome.

4 ответа

Решение

local.test.com будет использоваться для домена, в то время как .local.test.com будет использоваться и для поддоменов.

Начальная точка означает, что cookie действителен и для поддоменов; тем не менее, последние спецификации HTTP (RFC 6265) изменили это правило, поэтому современные браузеры не должны заботиться о ведущей точке. Точка может понадобиться старому браузеру, реализующему устаревший RFC 2109.

RFC 6265 раздел 4.1.2.3

Например, если значение атрибута "Домен" равно "example.com", пользовательский агент будет включать cookie в заголовок "Cookie" при отправке HTTP-запросов на example.com, www.example.com и www.corp.example. ком. (Обратите внимание, что начальный%x2E ("."), Если он присутствует, игнорируется, даже если этот символ не разрешен, но завершающий%x2E ("."), Если он присутствует, заставит пользовательский агент игнорировать атрибут.)

Из статьи Полное руководство по доменам cookie и почему префикс www делает ваш сайт более безопасным:

Заключение

Хотя определения несколько отличаются, мы можем упростить его для любой из этих реализаций как:

  • Если в файле cookie не указан домен, файл cookie должен соответствовать только точному имени хоста запроса. [ПРИМЕЧАНИЕ: это отличается от возврата Set-Cookie с доменом без точки!] Нет поддоменов, нет частичных совпадений. Это означает просто не включать атрибут домена - недопустимо устанавливать пустой атрибут домена. К сожалению, Internet Explorer воспринимает это как имя хоста вместе с любыми поддоменами.

  • При настройке домена в файле cookie безопасным выбором будет иметь перед ним точку, например.erik.io. Файл cookie будет соответствовать всем поддоменам.

  • Установка домена cookie без предшествующей точки, например erik.io, недопустима в реализациях RFC 2109 и будет вести себя так же, как и с предыдущей точкой в ​​других реализациях. Невозможно ограничить использование cookie определенным явно заданным доменом без включения поддоменов.

Другие заслуживающие внимания наблюдения:
  • Во всех RFC указанный домен cookie должен совпадать с текущим именем хоста в соответствии с нормальным соответствием. Установка файла cookie для www.erik.io в ответе от erik.io недопустима, поскольку файл cookie с доменом www.erik.io не соответствует erik.io, а первый является более конкретным.

  • В RFC 6265 домены явно в нижнем регистре при синтаксическом анализе заголовка Set-Cookie.

Главная точка в.local.test.com - это то, как chrome просматривает файлы cookie с набором "Domain= local.test.com" (или "Domain=.local.test.com", что тоже самое).

Определения Set-Cookie без "Domain= что-то" просматривают домен (= хост) без начальной точки.

Таким образом, ведущая точка в chrome не отражает, использовалась ли ведущая точка с сервера, но имеет ли этот файл cookie "Domain= что-то" в своем определении с сервера. (И если это так, куки-файлы также будут отправлены на субдомены).

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

Другие вопросы по тегам