CORS описывает условия предоставления ответа другому источнику; разделение источников сохраняется.
Политика одного источника (SOP)
Определение
Политика одного источника (SOP) — правило браузера, по которому сценарий страницы читает ответы только со своего источника: с того же сочетания схемы, имени узла и порта. Ответ чужого источника браузер сценарию не отдаёт, но запрос до сервера доходит и может быть выполнен.
Также ищут: Same-origin policy · SOP · browser origin isolation
Зачем это знать
Она ограничивает доступ сценария к чужим данным, но не заменяет серверную проверку подлинности, прав и защиту от CSRF.
Карта понятия
Что подтверждено
Веб-источник определяется схемой, именем узла и портом; изменение любого компонента обычно создаёт другой источник.
Граница применимости: Представление и сравнение веб-источников.
Политика прежде всего ограничивает чтение данных и взаимодействие сценариев между источниками; браузер всё ещё может отправлять некоторые запросы с автоматическими учётными данными.
Граница применимости: Различие между изоляцией браузера и отправкой запросов.
Разные пути одного HTTPS-узла при одинаковом порте не создают разные источники. Разнести приложения по каталогам URL недостаточно для изоляции их как разных источников браузера.
Граница применимости: Обычные источники HTTP(S) по RFC 6454; непрозрачные источники и специальные схемы не рассматриваются.
Если браузер не отдаёт сценарию ответ другого источника, это не означает, что сервер не получил запрос. Запрет чтения не отменяет уже выполненное изменение состояния.
Граница применимости: Разрешённые к отправке межсайтовые запросы; не утверждает, что браузер отправляет любой запрос без предварительной проверки.
При явно заданном регистрируемом домене shop.example адреса https://app.shop.example и https://api.shop.example относятся к одному сайту HTTPS, но к разным источникам. Для чтения ответа сценарием применяются правила источника и CORS, а не только SameSite.
Граница применимости: Учебный пример с фиксированной границей регистрируемого домена shop.example; не выводится из похожести произвольных имён.
Не путать
Источник включает схему, имя узла и порт. Модель сайта для SameSite использует другую границу и не подменяет изоляцию источников.
Что проверить
- Выпишите схему, имя узла и порт каждого интерфейса.
- Не считайте разные пути разными источниками.
- Для примера сайта явно задайте регистрируемый домен.
- Разделите отправку запроса и чтение его ответа.
- Проверьте CORS для нужных источников.
- Отдельно проверьте автоматическую отправку cookie.
- Сохраняйте серверную защиту операций, изменяющих состояние.
Первоисточники
- Fetch Standard
Определяет CORS protocol, credentials modes, allowed origins и CORS-preflight fetch через OPTIONS.
- Cross-Site Request Forgery Prevention Cheat Sheet
Разводит CSRF tokens, SameSite и origin checks и задаёт свойства synchronizer и signed double-submit tokens.
- Cookies: HTTP State Management Mechanism (6265bis)
Рабочий документ HTTP WG, определяющий атрибут SameSite (Strict, Lax, None) и требование Secure для None. Это не RFC: класс основания ниже стандарта намеренно.
Утверждения: 05
- Fetch Standard
Определяет CORS protocol, credentials modes, allowed origins и CORS-preflight fetch через OPTIONS.
Утверждения: 05