Может ли subdomain.example.com установить cookie, который можно прочитать example.com?

Я просто не могу поверить, что это довольно сложно определить.

Даже прочитав RFC, мне не ясно, может ли сервер на subdomain.example.com установить cookie, который может быть прочитан example.com.

subdomain.example.com может установить cookie, чей атрибут домена является .example.com. RFC 2965 явно указывает, что такой файл cookie не будет отправлен на example.com, но в то же время говорит, что если вы установите Domain = example.com, точка будет добавлена, как если бы вы сказали .example.com. Взятый вместе, это, кажется, говорит, что если example.com возвращает наборы cookie с Domain = example.com, он не получает этот файл cookie! Это не может быть правильно.

Может ли кто-нибудь уточнить, каковы правила на самом деле?

Ответ 1

Да.

Если вы указали, что домен является .example.com, то *.example.com и example.com могут получить к нему доступ.

Это тот принцип, который позволяет веб-сайтам, которые выдает файлы cookie, когда кто-то отправляется на сайт www.website.com для доступа к файлам cookie, когда кто-то уходит с www, отправляется на сайт .com.

EDIT: из документации PHP о файлах cookie:

domain Домен, в котором находится файл cookie доступный. Сделать файл cookie доступный во всех поддоменах example.com, то вы '.example.com.. не требуется но делает его совместимым с большим количеством браузеры. Установка www.example.com сделает cookie доступно только в субдомене www. См. Соответствие хвоста в спецификации для деталей. http://php.net/manual/en/function.setcookie.php

И это не уникально для PHP.