«Тот же сайт»; и "того же происхождения";

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

Источник

Источник
Структура происхождения.

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

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

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

Происхождение А Происхождение Б «Одно и то же происхождение» или «перекрестное происхождение»?
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)
Части URL-адреса, составляющие сайт.

Домены верхнего уровня (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)
Части URL-адреса с eTLD.

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

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

Происхождение А Происхождение Б «Тот же сайт» или «межсайтовый»?
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, а схема не учитывается.

Происхождение А Происхождение Б «Бесспланный односайтовый» или «межсайтовый»?
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 Бесхитростный один и тот же сайт: порты не имеют значения

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

Поддержка браузера

  • 76
  • 79
  • 90
  • 16,4

Источник

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

  • cross-site
  • same-site (относится к схематическому на том же сайте)
  • same-origin
  • none

Вы можете проверить значение Sec-Fetch-Site чтобы определить, является ли запрос тем же сайтом, того же источника или межсайтовым.

Вы можете разумно доверять значению заголовка Sec-Fetch-Site , потому что: