Синхронизированный CSRF-токен в форме/заголовке, SameSite cookies, проверка Origin/Referer для state-changing запросов и отказ от cookie-auth для чистого API в пользу токенов вне auto-cookie.
Разбор
- Double-submit / synchronizer token — классика для session cookie.
SameSite=Lax или Strict режет многие cross-site POST.
- Для SPA: custom header + CORS без credentials от чужих origin.
- Idempotent GET не должен менять состояние — иначе CSRF через
<img>.
Итог
CSRF закрывают токеном/SameSite/Origin-check и правильной семантикой методов.