Объясните CSRF
Вопрос
Что такое CSRF, при каких условиях он возможен и как от него защищаются?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Суть: чужой сайт заставляет браузер жертвы отправить запрос с её cookie
Условия: автоматические учётные данные и предсказуемый изменяющий запрос
SameSite Lax или Strict у cookie сессии
CSRF-токен или проверка Origin и Sec-Fetch-Site
GET без изменения состояния, CORS не защита
Что могут спросить следом
- Если у нас токен в заголовке, нужна ли защита?
- Чем опасен поддомен под контролем атакующего?
Разбор
Образцовый ответ: «CSRF это когда страница атакующего отправляет запрос на наш сайт из браузера жертвы, например автосабмит формы перевода. Браузер прикладывает cookie сессии, и сервер считает запрос легитимным. Атакующий не видит ответ, но действие выполнится. Нужны два условия: аутентификация через cookie или другие автоматические данные и изменяющий запрос, который можно предсказать. Защита: SameSite Lax или Strict на cookie сессии, CSRF-токен в формах и заголовках, проверка Origin и Sec-Fetch-Site для изменяющих методов, и никаких изменений через GET. CORS тут не помогает: он про чтение ответов. Если токен в заголовке Authorization, классический CSRF невозможен, но тогда растёт цена XSS».
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.