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

Предварительный запрос CORS

Определение

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

Также ищут: CORS preflight · preflight request · OPTIONS preflight

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

Он заранее показывает условия межсайтового обращения, но простые запросы обходятся без него, поэтому сервер должен отдельно проверять каждое действие.

Связи из словаря

Карта понятия

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

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

  1. Браузер отправляет OPTIONS с Origin, Access-Control-Request-Method и при необходимости Access-Control-Request-Headers, затем проверяет ответ CORS.

    Граница применимости: Алгоритм предварительной проверки CORS.

  2. Не все запросы браузера требуют предварительной проверки, поэтому она не заменяет общую защиту от CSRF и проверку прав доступа.

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

  3. Предварительная проверка CORS согласует метод и заголовки, а не входит в сеанс пользователя: межисточниковый OPTIONS по алгоритму стандарта получения ресурсов браузером не передаёт учётные данные приложения другому источнику. Проверка прав основного запроса остаётся отдельной.

    Граница применимости: Нормативный алгоритм получения ресурсов браузером; различия реализаций транспорта, включая клиентские сертификаты TLS, не описываются.

  4. Разрешение предварительной проверки может храниться в специальном кеше браузера. Повторное использование этого разрешения не освобождает приложение от проверки действующего сеанса и прав основного запроса.

    Граница применимости: Разделение кеша протокола CORS и текущей авторизации API.

  5. Если запрос требует предварительной проверки и она не прошла, браузер не отправляет соответствующий основной запрос в этом выполнении алгоритма получения ресурсов. Это не означает, что любой запрос к тому же адресу обязательно проходит предварительную проверку.

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

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

Не путать

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

Успешный OPTIONS ещё не доказывает, что основной ответ пройдёт проверку CORS и будет доступен сценарию.

Предварительный запрос CORS Токен CSRF

OPTIONS согласует протокол браузера. Токен CSRF проверяется приложением для предусмотренного изменяющего запроса и не равен этому согласованию.

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

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

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

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

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

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

    Утверждения: 01 · 02 · 03 · 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.

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

  • Первичная спецификация
    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.

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

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

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

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

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

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

Карта знаний

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

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

Курсы по теме

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