Может ли subdomain.example.com установить cookie-файл, который может быть прочитан example.com? - PullRequest
34 голосов
/ 22 июня 2010

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

Даже прочитав 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 Ответ

40 голосов
/ 22 июня 2010

Да.

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

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

РЕДАКТИРОВАТЬ: Из документации PHP о куки:

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

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

...