Понимание "того же сайта" и "того же происхождения";

Термины «тот же сайт» и «то же происхождение» часто упоминаются, но часто неправильно понимаются. Например, они упоминаются в контексте переходов страниц, запросов fetch() , файлов cookie, открытия всплывающих окон, встроенных ресурсов и iframe.

Источник

Источник

«Происхождение» — это комбинация схемы (также известной как протокол , например HTTP или HTTPS ), имени хоста и порта (если он указан). Например, для URL-адреса https://www.example.com:443/foo «происхождение» — https://www.example.com:443 .

«того же происхождения» и «перекрестного происхождения»

Веб-сайты, которые имеют одну и ту же схему, имя хоста и порт, считаются «одного происхождения». Все остальное считается «перекрестным происхождением».

Происхождение А Происхождение Б Объяснение того, являются ли источники A и B «одного происхождения» или «перекрестного происхождения».
https://www.example.com:443 https://www.evil.com:443 перекрестное происхождение: разные домены
https://example.com:443 перекрестное происхождение: разные поддомены
https: //логин.example.com :443 перекрестное происхождение: разные поддомены
http://www.example.com:443 перекрестное происхождение: разные схемы
https://www.example.com: 80 перекрестное происхождение: разные порты
https://www.example.com:443 того же происхождения: точное совпадение
https://www.example.com того же происхождения: неявный номер порта (443) совпадает

Сайт

Сайт (ДВУ+1)

Домены верхнего уровня (TLD), такие как .com и .org , перечислены в базе данных корневых зон . В приведенном выше примере «сайт» — это комбинация схемы , TLD и части домена непосредственно перед ним (мы называем его TLD+1). Например, для URL-адреса https://www.example.com:443/foo «сайт» — https://example.com .

Список общедоступных суффиксов и eTLD

Для доменов, которые включают такие вещи, как .co.jp или .github.io , простое использование .jp или .io недостаточно для идентификации «сайта». Невозможно алгоритмически определить уровень регистрируемых доменов для конкретного TLD. Вот почему был создан список общедоступных суффиксов, определенный в списке общедоступных суффиксов . Эти общедоступные суффиксы также называются эффективными TLD (eTLD) . Список eTLD хранится по адресу publicsuffix.org/list .

Чтобы определить «сайт»-часть домена, включающего eTLD, примените тот же метод, что и в примере с .com . Если взять https://www.project.github.io:443/foo в качестве примера, схема — https , eTLD — .github.io , а eTLD+1 — project.github.io , поэтому https://project.github.io считается «сайтом» для этого URL.

Сайт (eTLD+1)

«один и тот же сайт» и «межсайтовый»

Веб-сайты, имеющие одинаковую схему и одинаковый eTLD+1, считаются «одним и тем же сайтом». Веб-сайты, имеющие другую схему или другой eTLD+1, являются «межсайтовыми».

Происхождение А Происхождение Б Объяснение того, являются ли источники A и B «одными и межсайтовыми»
https://www.example.com:443 https://www.evil.com:443 межсайтовый: разные домены
https: //логин.example.com :443 один и тот же сайт: разные поддомены не имеют значения
http://www.example.com:443 межсайтовый: разные схемы
https://www.example.com: 80 тот же сайт: разные порты не имеют значения
https://www.example.com:443 тот же сайт: точное совпадение
https://www.example.com тот же сайт: порты не имеют значения

"бесхитростный один и тот же сайт"

бесхитростный на том же сайте

Определение «тот же сайт» эволюционировало, чтобы рассматривать схему URL как часть сайта, чтобы предотвратить использование HTTP в качестве слабого канала . Старая концепция «одного и того же сайта» без сравнения схем теперь называется «бессхемным одним и тем же сайтом». Например, http://www.example.com и https://www.example.com считаются бессхемными для одного и того же сайта, но не для одного и того же сайта, поскольку имеет значение только часть eTLD+1, а схема не принимается во внимание. .

Происхождение А Происхождение Б Объяснение того, являются ли источники A и B «бессхемными, расположенными на одном сайте»
https://www.example.com:443 https://www.evil.com:443 межсайтовый: разные домены
https: //логин.example.com :443 бесхитростный один и тот же сайт: разные поддомены не имеют значения
http://www.example.com:443 бессхемное одно и то же место: разные схемы не имеют значения
https://www.example.com: 80 бессхемный один и тот же сайт: разные порты не имеют значения
https://www.example.com:443 бесхитростный тот же сайт: точное совпадение
https://www.example.com бесхитростный односайтовый сайт: порты не имеют значения

Как проверить, является ли запрос «одним и тем же сайтом», «одним и тем же источником» или «межсайтовым»

Все современные браузеры ( скоро появится поддержка Safari) отправляют запросы вместе с HTTP-заголовком Sec-Fetch-Site . Заголовок имеет одно из следующих значений:

  • cross-site
  • same-site
  • same-origin
  • none

Изучив значение Sec-Fetch-Site , вы можете определить, является ли запрос «того же сайта», «того же происхождения» или «межсайтовым».