Доброго времени суток. До сегодняшнего дня считал что указание в cookies доменной зоны "site.example.com" ограничивает их действие лишь указанным сайтом. Также думал что для доступности cookies поддоменам, нужно прописать зону "*.site.example.com". Но сегодня обратил внимание на описание соотв. параметра в функции setcookie(): Получается что устанавливая зону "site.example.com" я делаю cookies доступными и для доменов "*.site.example.com". Кроме вариантов со старыми браузерами работающими по RFC 2109. Найдя RFC по HTTP (2616) ничего там про cookies не нашёл. Гугл по фразе "RFC HTTP cookies" выдаёт ссылку на 2109. Скажите пожалуйста, где можно найти актуальную на данный момент информацию по работе доменных зон в cookies?
вроде, НЕ получается. site.example.com - только для этого домена, .site.example.com - для этого домена и всех поддоменов
Белый Тигр, дайте ссылку откуда цитируете. Верно то, что пишет Ganzal. Каноническая форма ".example.com"
вроде не совсем так. тут отношение к домену второго уровня. устанавливая domain.tld браузер по стандарту добавляет слева точку и получается кроссдоменная печенька. а установка sub.domain.tld - будет работать только с этим доменом, не выходя не выше ни ниже. для всех *.sub вам руками нужно будет добавить точку слева - .sub.domain.tld. и субдомены не могут ставить печеньки соседям. в вашем приведенном случае - домен не второго уровня + точки нет. следовательно печенька будет работать только с одним доменом - site.example.com
Да уж. В документации про setcookie отвратительно написали. Зато аналогичный параметр в функции session_set_cookie_params расписан как по нотам: Речь на самом деле о том же самом, т.к. сессионная кука это кука ))
предположу, что д2у считается максимально доверенным - если ты устанавливаешь на нем куки, то значит и владеешь всем что ниже. а вот поддомены (д3+у) могут иметь разных владельцев, поэтому из соображений безопасности не проталкивается ниже - там может быть еще один владелесь, и соседям. вернувшись сегодня в эту тему задумался как работают зоны к примеру .com.ru. это зоной считается или полноценными доменами 1 и 2 уровня?
из общего правила выпадает только домен первого уровня -- как localhost. для него хоть ставь слева точку, хоть нет, одинаково НЕ распостраняется на под-домены. для остальных всё единообразно, 2-й или 13-й уровень, без разницы. с точкой виден на этом уровне и в под-доменах. без точки только на своем уровне.
3Jlou_OguHo4ka, не видеть проблему !== нет проблемы. Если сайт откликается на example.com и www.example.com (большинство сайтов так работают), то можно зайти на www.example.com, залогиниться, затем по какой-нибудь внутренней ссылке попасть на example.com и ОПА! внезапно ты не залогинен. а возможна и обратная ситуация. Понимаешь? $_SERVER['HTTP_HOST'] тупо равен домену из адресной строки, а не какому-то предопределенному домену.