CSRF прежде всего актуален для незащищённой cookie-based авторизации, при которой браузер сам добавляет данные в запрос.
При каких способах авторизации возможна CSRF-атака?
CSRF прежде всего актуален для незащищённой cookie-based авторизации, при которой браузер сам добавляет данные в запрос.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
При каких способах авторизации возможна CSRF-атака?
- Контекст: веб-безопасность и механизмы авторизации
- CSRF эксплуатирует сессии, в которых браузер сам прикладывает аутентификационные данные
- Риск характерен для cookie-based авторизации с автоматической отправкой cookies
- Особенно опасны cookie-сессии без CSRF-токенов и других защит
- Токены в заголовках, например Authorization Bearer, менее уязвимы, поскольку передаются явно
- OAuth и JWT также могут быть уязвимы, если браузер автоматически добавляет токен в запрос
- Критерий: автоматическая и незаметная для пользователя отправка аутентификации
- Защита: CSRF-токены, SameSite cookies и проверка Origin/Referer
Итого: CSRF прежде всего актуален для незащищённой cookie-based авторизации, при которой браузер сам добавляет данные в запрос.
Подробный ответ
Основной ответ
CSRF (Cross-Site Request Forgery) угрожает механизмам авторизации, где браузер автоматически прикладывает идентификационные данные. В первую очередь речь идёт о куки (cookies): они отправляются при обращении к соответствующему домену без дополнительного подтверждения. Поэтому уязвимы cookie-сессии и HTTP Basic Authentication с сохранёнными в браузере учетными данными.
Ключевые моменты
- Cookie-based авторизация: браузер автоматически добавляет куки к HTTP-запросам. Если защит нет, сторонний сайт способен инициировать запрос от имени пользователя, например без CSRF-токена.
- Token-based авторизация в HTTP Header (например, Bearer Token в Authorization header) обычно менее подвержена CSRF: JavaScript другого домена не получает такие токены из-за политики CORS, а сам токен не отправляется автоматически и должен быть добавлен явно.
- CSRF защищают уникальными проверяемыми CSRF-токенами, SameSite-куки в современных браузерах и проверкой заголовков Origin/Referer.
Практический контекст
В современных веб-приложениях сессии часто хранятся в куки, поэтому без флага SameSite=Lax/Strict или CSRF-токенов в формах CSRF-атаки остаются актуальными. В API с авторизацией через заголовки Authorization, например JWT в локальном хранилище, риск CSRF заметно ниже, но возрастает риск XSS; значит, нужна комплексная защита.