Файлы cookie без атрибута «SameSite» отправляются в разные поддомены - PullRequest
1 голос
/ 16 января 2020

Итак, я прочитал о Chrome 80-х cookie-файлах по умолчанию SameSite = Lax , и, как и все остальные, я сейчас пытаюсь оценить влияние, которое это окажет на мой сайт.

Сайт, на котором я работаю, разбит на несколько поддоменов, и каждый из них использует свой собственный повар ie. Выглядит это так:

  • first-site.domain.com использует Cookie1 (path=/; secure; httponly)
  • секунда -site.domain.com использует Cookie2 (path=/; secure; httponly)

Поскольку эти файлы cookie не задают атрибут SameSite, они должны рассматриваться как Lax на Chrome 80 и, следовательно, должны быть ограничены запросами одного и того же сайта (если только это не навигация верхнего уровня).

Затем, в соответствии с файлами cookie SameSite, объясненными :

Если пользователь подключен к your-project.github.io и запрашивает изображение из my-project.github.io , это межсайтовый запрос.

Поэтому, когда я включил флаги «Файлы cookie по умолчанию SameSite» и «Файлы cookie без SameSite должны быть безопасными», я с удивлением заметил, что когда first-site.domain.com встраивает second-site.domain.com в кадр, Cookie2 все еще отправлялся на second-site.domain.com , что, по-видимому, противоречит ctory.

Конечно, я, должно быть, что-то неправильно понял, но на данный момент я все еще озадачен.

Примечание: я проверял это, когда вставляю second-site.domain .com в фрейме anotherdomain.com , файлы cookie не отправляются браузером (как и ожидалось).

1 Ответ

3 голосов
/ 16 января 2020

Если "domain.com" находится в списке publi c суффиксов , то subdomain1.domain.com и subdomain2.domain.com считаются разными сайтами. В противном случае они считаются одним и тем же сайтом.

Соответствующим понятием «сайт» в отношении файлов cookie SameSite является eTLD + 1 (эффективная метка Домена верхнего уровня + 1). Эффективный домен верхнего уровня - это что-то вроде .com или .co.uk или .github.io. Все eTLD перечислены в списке суффиксов publi c.

eTLD + 1 - это эффективный домен верхнего уровня плюс метка 1 непосредственно слева от него. ETLD + 1 также называется «регистрируемым доменом». Интуиция заключается в том, что два разных eTLD + 1 контролируются разными объектами, а все, что является поддоменом одного и того же eTLD + 1, контролируется одним и тем же объектом. Например, mysite.github.io - это другой eTLD + 1, чем yoursite.github.io, потому что я не могу изменить ваш сайт, а вы не можете изменить мой. С другой стороны, одна и та же компания владеет как subdomain1.domain.com, так и subdomain2.domain.com и модифицирует оба сайта.

Если eTLD + 1 одинаковы для двух доменных имен, они считаются одинаковыми сайт для целей файлов cookie SameSite.

...