2010-10-05 1 views
10

Купили ли файлы поддоменов в HTTP-запросе родительского домена?куки-файлы поддоменов, отправленные в запрос родительского домена?

Например, у меня есть печенье:

Name  Value  Domain (not https) 
ABC  1   .example.com 
XYZ  0   foo.example.com 
DEF  0   bar.example.com 

Будет [email protected] и [email protected] быть отправлены вместе в HTTP-заголовке cookies на reqeust в http://example.com/content и/или http://QQQ.example.com/content

+0

См. Также: [Связанный домен Cookie Attacks] (http://stackoverflow.com/q/9636857/328397) – LamonteCristo

ответ

23

Ведущая точка в значении области .example.com означает example.com и его поддомены. Без ведущей точки cookie cookie действителен только для этого конкретного домена.

Обратите внимание, что при настройке файла cookie значения домена без ведущей точки будут добавляться с точкой. Только если параметр домена не установлен, агент пользователя принимает текущий домен для этого файла cookie.

В этом случае, если запрашивается http://example.com/, будет отправлен только файл cookie для .example.com. Но в случае http://foo.example.com/, оба файла cookie для .example.com и foo.example.com будут отправлены. А в случае http://bla.foo.example.com будет отправлен только файл cookie для .example.com.

+1

К сожалению, этот метод поддерживается [по-разному] (http://www.phpied.com/www-vs-no-www-and-cookies/) каждым основным браузером, поэтому я бы не рекомендовал его. –

+0

@EfranCobisi Что вы подразумеваете под «этой техникой»? – Gumbo

+0

Я имел в виду удаление ведущей точки из значения домена cookie в качестве решения для исходного вопроса. Это должно работать теоретически, но на практике техника ограничена неправильным поведением некоторых браузеров (см. Мою оригинальную ссылку). –

6

Нет, это наоборот: родитель -domain печенье отправляются в суб -domain HTTP запросов.

+0

Есть ли способ предотвратить отправку cookie родительских доменов в HTTP-запросы поддомена? – Prachi

+1

@Prachi: не перекрестный браузер, нет. В принципе, если вы вообще не устанавливаете 'domain', они не должны наследоваться в поддомены. Но IE не уважает это. – bobince

0

Печеньки субдомена отправляются только в том случае, если они были установлены с доменом с ведущей точкой на уровне над ним. Поэтому, если www.example.com устанавливает cookie с доменом «.example.com», он отправляется, иначе нет.

С другой стороны, более запутанный файл cookie, установленный в домене верхнего уровня, должен отправляться только на субдомены, если у него есть ведущая точка, но если вы используете Internet explorer, он также отправит его, если он будет отправлен без ведущая точка (ref).