CORS

Простыми словами

Политика одного источника по умолчанию ограничивает чтение ответов другим сайтом. CORS не отключает эту модель целиком, а задаёт контролируемые исключения, которые сервер сообщает браузеру.

Как применяется

Сервер проверяет Origin по точному списку доверенных источников, корректно обрабатывает preflight, ограничивает методы и заголовки и особенно осторожно разрешает credentials. CORS не заменяет аутентификацию и авторизацию API.

Пример применения

API должен быть доступен только приложению на `app.example.ru`. Сервер возвращает разрешающий заголовок для этого origin, но не отражает произвольное значение из запроса и не открывает credentialed-доступ всем сайтам.

Не путать с

  • CSRFCSRF заставляет браузер отправить нежелательный запрос
  • CSPCSP управляет разрешёнными источниками контента и решает другую задачу

Как это работает

  1. ЗапросБраузер определяет, что источник страницы отличается от источника ресурса.
  2. Предварительная проверкаДля ряда запросов браузер отправляет OPTIONS с описанием метода и заголовков.
  3. Ответ сервераСервер явно указывает разрешённые источники, методы, заголовки и режим учётных данных.
  4. Решение браузераБраузер предоставляет ответ скрипту только при выполнении политики CORS.

Продолжить изучение

Связанные термины

Частые вопросы

Что такое CORS простыми словами?

CORS позволяет серверу сообщить браузеру, каким внешним origin разрешено читать его ответы.

Зачем нужен preflight-запрос?

Для запросов с определёнными методами или заголовками браузер сначала отправляет OPTIONS и проверяет разрешения сервера.

Почему Access-Control-Allow-Origin: * не всегда безопасен?

Звёздочка открывает чтение ответа любому origin и несовместима с credentialed-запросами; допустимость зависит от публичности ресурса.

CORS (Cross-Origin Resource Sharing) — браузерный механизм, который с помощью HTTP-заголовков позволяет серверу явно определить, каким внешним источникам разрешено читать ответы на межсайтовые запросы.