CSRF-токен
Что такое CSRF-токен?
CSRF-токенНепредсказуемое значение, привязанное к сессии и встраиваемое в формы или заголовки, чтобы сервер мог убедиться, что изменяющие состояние запросы исходят с его страниц.
CSRF-токен — стандартная защита от Cross-Site Request Forgery. Сервер генерирует случайное значение, связывает его с сессией пользователя и встраивает в HTML-формы или отправляет в пользовательском заголовке. На каждом запросе, меняющем состояние, сервер сравнивает присланный токен с ожидаемым и отклоняет несовпадения. Варианты: synchronizer token (состояние на сервере), double-submit cookies (без состояния), HMAC по OWASP. Современные приложения сочетают CSRF-токены с SameSite=Lax или Strict cookies, кастомными заголовками, проверкой Origin/Referer и строгим CORS. API, вызываемые только из JS с bearer-токенами, не требуют CSRF-токенов, но нуждаются в защите от replay.
● Примеры
- 01
Скрытое поле <input type="hidden" name="csrf" value="a8f1..."> в форме.
- 02
Заголовок X-CSRF-Token, проверяемый на сервере против секрета сессии.
● Частые вопросы
Что такое CSRF-токен?
Непредсказуемое значение, привязанное к сессии и встраиваемое в формы или заголовки, чтобы сервер мог убедиться, что изменяющие состояние запросы исходят с его страниц. Относится к категории Идентификация и доступ в кибербезопасности.
Что означает CSRF-токен?
Непредсказуемое значение, привязанное к сессии и встраиваемое в формы или заголовки, чтобы сервер мог убедиться, что изменяющие состояние запросы исходят с его страниц.
Как защититься от CSRF-токен?
Защита от CSRF-токен обычно сочетает технические меры и операционные практики, как описано в определении выше.