Заголовки: Sec-Fetch-Site
Заголовок Sec-Fetch-Site
Базовый уровень Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с марта 2023 года.
Хотите, чтобы эта функция поддерживалась шире? Расскажите нам почему.
HTTP-заголовок Sec-Fetch-Site запроса с метаданными fetch указывает на связь между источником инициатора запроса и источником запрашиваемого ресурса.
Иными словами, этот заголовок сообщает серверу, поступил ли запрос ресурса с того же источника, с того же сайта, с другого сайта или был инициирован пользователем. Затем сервер может использовать эту информацию, чтобы решить, следует ли разрешить запрос.
Запросы с того же источника обычно разрешаются по умолчанию, но решение о запросах с других источников может дополнительно зависеть от запрашиваемого ресурса или сведений в другом заголовке запроса с метаданными fetch. По умолчанию запросы, которые не разрешены, следует отклонять с кодом ответа 403.
| Тип заголовка | Заголовок запроса с метаданными Fetch |
|---|---|
| Запрещённый заголовок запроса | Да (префикс Sec-) |
| Заголовок запроса из списка безопасных для CORS | Нет |
Синтаксис
Sec-Fetch-Site: cross-site Sec-Fetch-Site: same-origin Sec-Fetch-Site: same-site Sec-Fetch-Site: none
Директивы
cross-site-
Инициатор запроса и сервер, на котором размещён ресурс, находятся на разных сайтах (например, запрос ресурса на "example.com" со стороны "potentially-evil.com").
same-origin-
Инициатор запроса и сервер, на котором размещён ресурс, имеют один и тот же источник (одинаковые схема, хост и порт).
same-site-
Инициатор запроса и сервер, на котором размещён ресурс, находятся на одном и том же сайте, включая схему.
none-
Этот запрос представляет собой действие, инициированное пользователем. Например: ввод URL в адресную строку, открытие закладки или перетаскивание файла в окно браузера.
Примеры
Запрос fetch к https://mysite.example/foo.json, отправленный с веб-страницы на https://mysite.example (с тем же портом), является запросом с того же источника. Браузер сформирует заголовок Sec-Fetch-Site: same-origin, как показано ниже, и сервер обычно разрешит запрос:
GET /foo.json Sec-Fetch-Dest: empty Sec-Fetch-Mode: cors Sec-Fetch-Site: same-origin
Запрос fetch к тому же URL с другого сайта, например potentially-evil.com, заставит браузер сформировать другой заголовок (например, Sec-Fetch-Site: cross-site), который сервер может разрешить или отклонить:
GET /foo.json Sec-Fetch-Dest: empty Sec-Fetch-Mode: cors Sec-Fetch-Site: cross-site
Спецификации
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari для iOS | Samsung Internet | WebView Android | WebView для iOS | |
Sec-Fetch-Site |
76 | 79 | 90 | 63 | 16.4 | 76 | 90 | 54 | 16.4 | 12.0 | 76 | 16.4 |
См. также
-
Sec-Fetch-Mode,Sec-Fetch-User,Sec-Fetch-Dest— заголовки запросов с метаданными fetch - Защитите ресурсы от веб-атак с помощью Fetch Metadata (web.dev)
- Песочница для заголовков запросов с метаданными Fetch (secmetadata.appspot.com)
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Sec-Fetch-Site