Веб и безопасность приложений

Доступ между источниками (CORS)

Определение

Доступ между источниками (CORS) — это протокол браузера: заголовками ответа сервер указывает, сценариям каких источников браузер может отдать этот ответ. Без такого разрешения запрос может дойти до сервера и выполниться, но ответ сценарию браузер не отдаст.

Также ищут: Cross-Origin Resource Sharing · CORS · cross-origin access · Access-Control-Allow-Origin

Зачем это знать

Слишком широкое разрешение раскрывает ответ сторонним сценариям в браузере, а слишком узкое ломает интерфейс. За пределами браузера CORS — не межсетевой экран.

Доказательная часть

Что подтверждено

  1. Заголовки ответа CORS позволяют браузеру отдать ответ другого источника запрашивающему сценарию после успешной проверки протокола.

    Граница применимости: Протокол CORS в Fetch.

  2. CORS проверяет правила обмена между источниками в браузере, а не подлинность вызывающей стороны и не право на объект; другой клиент может отправить HTTP-запрос без этой проверки.

    Граница применимости: Различие между CORS и контролем доступа приложения.

  3. Для межисточникового запроса Fetch с режимом учётных данных include проверка CORS не принимает звёздочку в Access-Control-Allow-Origin: требуется конкретный источник и разрешение учётных данных. Условие связано с режимом запроса, а не только с фактическим наличием cookie.

    Граница применимости: Проверка CORS в Fetch для режима include; не обещает отправку cookie вопреки другим ограничениям браузера.

  4. Когда ответ предназначен только выбранному интерфейсу, сервер сверяет полученный источник со своим разрешённым набором. Простое отражение любого значения заголовка источника запроса в разрешающем заголовке не выражает такое ограничение.

    Граница применимости: Вывод для политики доступа браузера только из заданных источников; разрешение CORS не подменяет проверку прав API.

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

    Граница применимости: Случай запроса, который был разрешён к отправке; не относится к основному запросу, остановленному неуспешной предварительной проверкой.

Граница терминов

Не путать

Доступ между источниками (CORS) Предварительный запрос CORS

Предварительная проверка согласует часть запросов до отправки. Итоговая проверка CORS определяет предоставление ответа сценарию.

Доступ между источниками (CORS) Межсайтовая подделка запроса (CSRF)

CORS может скрыть ответ, но уже выполненное действие остаётся. Защиту изменяющего запроса проектируют на сервере.

Перед спецификацией

Что проверить

  1. Перечислите источники, которым нужен ответ в браузере.
  2. Укажите режим учётных данных запроса.
  3. Для include не используйте звёздочку разрешённого источника.
  4. Не отражайте произвольное значение источника вместо проверки настроенного списка.
  5. Проверяйте права на каждый объект в приложении.
  6. Различайте блокировку отправки и блокировку чтения ответа.
  7. Проверяйте серверный результат операции при ошибке CORS.
Открытые основания

Первоисточники

  • Стандарт4
  • Документация1
  • Первичная спецификация
    Fetch Standard WHATWG · Living Standard, checked 30 August 2026 · проверено

    Определяет CORS protocol, credentials modes, allowed origins и CORS-preflight fetch через OPTIONS.

    Утверждения: 01 · 02 · 04 · 05

  • Первичная спецификация
    Guidelines for API Protection for Cloud-Native Systems National Institute of Standards and Technology · NIST SP 800-228-upd1, includes updates as of 13 March 2026 · проверено

    Задаёт API lifecycle controls для authentication, authorization, rate limits, resource limits, logging и monitoring.

    Утверждения: 02 · 04

  • Первичная спецификация
    Fetch Standard WHATWG · Living Standard, capture 2026-09-12, revision 394d20d144ed1401c2c0e02c35bc3608cb2a2269 · проверено

    Определяет CORS protocol, credentials modes, allowed origins и CORS-preflight fetch через OPTIONS.

    Утверждения: 03

  • Первичная спецификация
    The Web Origin Concept Internet Engineering Task Force · RFC 6454, December 2011 · проверено

    Определяет origin как scheme, host и port и описывает origin-based browser isolation model.

    Утверждения: 04

  • Официальная документация
    Cross-Site Request Forgery Prevention Cheat Sheet OWASP Foundation · OWASP Cheat Sheet Series, checked 30 August 2026 · проверено

    Разводит CSRF tokens, SameSite и origin checks и задаёт свойства synchronizer и signed double-submit tokens.

    Утверждения: 05

Карта знаний

Связанные понятия

Из знания — в навык

Курсы по теме

Подтвердите действие