POST /user/email/update
от имени жертвы (куки сессии прилагаются браузером автоматически).
passwordConfirm=123456
Сервер отвечает 200 OK. Почта жертвы изменена.
В приложении отключена CSRF-защита. Злоумышленник может заставить уже залогиненного пользователя (у которого есть сессия/куки) выполнить POST-запрос на изменение почты/пароля, просто подсовывая скрытую форму.
POST /user/email/update
от имени жертвы (куки сессии прилагаются браузером автоматически).
Тест шлёт POST без csrf-токена. Если сервер всё ещё отвечает 200 — стопаем билд. Ожидаем 403.
#!/bin/bash
# csrf-check.sh
STATUS=$(curl -s -o /tmp/resp.json -w "%{http_code}" \
-X POST \
-b "SESSION=fake-user-session-cookie" \
-d "newEmail=hacker@evil.example" \
https://staging.example.internal/user/email/update)
if [ "$STATUS" = "200" ]; then
echo "[BLOCK] CSRF: можно менять данные без CSRF-токена"
exit 1
fi
echo "[OK] Сервер требует CSRF-токен (HTTP $STATUS)"
exit 0
Это делает невозможной тихую подмену пользовательских настроек через внешние сайты.
Стандарт:любые state-changing запросы требуют CSRF-токен. Отключать CSRF «чтобы не мешал фронту» нельзя.