PassFront
  1. PassFront
  2. База знаний
  3. DOM и браузер

Что такое CSRF уязвимость?

DOM и браузер

CSRF (Cross-Site Request Forgery) — это атака, при которой злоумышленник заставляет браузер жертвы выполнить нежелательный запрос к сайту, где она аутентифицирована, используя её cookie.

Как работает

Браузер автоматически прикрепляет cookie к запросам на домен. Если пользователь залогинен на bank.com, вредоносная страница может незаметно отправить запрос:

<!-- На сайте злоумышленника -->
<img src="https://bank.com/transfer?to=hacker&amount=1000" />
<form action="https://bank.com/transfer" method="POST">...</form>

Cookie сессии прикрепится автоматически — сервер примет запрос за легитимный.

Защита

  • SameSite cookie — SameSite=Lax/Strict не отправляет cookie при кросс-сайт запросах (основная современная защита).
  • CSRF-токены — уникальный непредсказуемый токен в форме/заголовке, который проверяет сервер; злоумышленник его не знает.
  • Проверка Origin/Referer заголовков.
  • Не использовать GET для изменяющих операций.

CSRF против XSS

  • XSS — выполнение чужого скрипта на странице.
  • CSRF — подделка запроса через доверенные cookie, без выполнения скрипта на целевом сайте.

HttpOnly от CSRF не защищает (cookie всё равно шлётся) — нужен SameSite/токены.

Коротко для собеседования

CSRF — принуждение браузера жертвы отправить запрос к сайту, где она залогинена, используя её cookie. Защита: SameSite cookie (основная), CSRF-токены, проверка Origin, отказ от GET для изменений. HttpOnly от CSRF не спасает.

Подробнее: MDN — CSRF

Другие вопросы раздела