Методы тестирования защиты CSRF в cookie-аутентификации с double submit token
Краткий ответ
Проверяйте, что запросы без корректного CSRF-токена отклоняются, контролируйте настройки SameSite для cookies и валидируйте заголовок Origin для предотвращения подделки.
Развёрнуто
Краткий ответ
Для эффективного тестирования защиты от CSRF при cookie-based аутентификации с double submit token необходимо убедиться, что сервер отвергает запросы без валидного CSRF-токена, проверить настройки политики SameSite для cookies и убедиться в правильной проверке заголовка Origin.
Как это работает
Cross-Site Request Forgery (CSRF) — это атака, при которой злоумышленник вынуждает пользователя выполнить нежелательное действие в доверенном приложении. При cookie-based аутентификации браузер автоматически отправляет cookies, что делает систему уязвимой к таким атакам.
Для защиты применяется метод double submit token: клиент отправляет CSRF-токен в cookie и в теле запроса или заголовке, сервер проверяет совпадение этих значений.
Кроме того, политика SameSite у cookies ограничивает передачу cookie в кросс-доменных запросах, снижая риск CSRF. Проверка заголовка Origin или Referer на стороне сервера помогает убедиться, что запросы приходят с доверенного источника.
| Механизм защиты | Как используется | Важный аспект |
|---|---|---|
| Double Submit Token | Токен в cookie и параметре запроса | Токены должны совпадать |
| Политика SameSite | Cookies с SameSite=Strict или Lax |
Ограничивает отправку кросс-сайтовых cookies |
| Проверка Origin | Сравнение заголовка Origin с доверенным |
Предотвращает подделку источника |
Пример
// Пример проверки CSRF-токена на сервере (псевдокод)
if (request.cookie.csrf_token == request.body.csrf_token &&
request.headers.Origin == trusted_origin) {
// Запрос принят
} else {
// Запрос отклонён с ошибкой CSRF
}
В тестировании нужно отправить запросы без CSRF-токена или с некорректным Origin и убедиться, что сервер их отклоняет.
Что важно знать на собеседовании
- Отличие double submit token от других CSRF-защит (например, synchronizer token pattern).
- Роль политики
SameSiteв защите cookie. - Почему проверка заголовка
Originбезопаснее, чемReferer. - Как проверить отсутствие CSRF-защиты с помощью инструментов для тестирования (например, Postman, Burp Suite).
- Влияние cookie domain и path на уязвимость к CSRF.
Тема: Безопасность и авторизация | Уровень: senior