Що таке CSRF?
CSRF (Cross-Site Request Forgery) - це атака, за якої зловмисник змушує браузер користувача виконати дію на сайті без його відома, використовуючи вже авторизовану сесію.
Простіше кажучи: сайт думає, що дію виконує користувач, хоча насправді її спровокував зловмисник.
Як працює CSRF простою мовою
- Користувач увійшов на сайт (наприклад, інтернет-банк)
- Сесія активна (cookies збережені в браузері)
- Користувач переходить на шкідливий сайт
- Цей сайт непомітно надсилає запит на довірений сайт
- Браузер автоматично прикладає cookies
- Сервер виконує дію, думаючи, що це користувач
Ключова проблема: довіра сайту до браузера користувача.
Що може зробити CSRF-атака
- змінити пароль;
- змінити email;
- перевести гроші;
- змінити налаштування облікового запису;
- виконати будь-яку дію без підтвердження.
CSRF не краде дані напряму, а змушує виконувати дії.
Приклад CSRF простими словами
Ти:
- залогінений у банку,
- відкриваєш інший сайт,
- а він «натискає кнопку» в банку за тебе.
Чим CSRF відрізняється від XSS
Важливо для співбесіди.
| Критерій | CSRF | XSS |
|---|---|---|
| Де виконується код | У зловмисника | У браузері жертви |
| Використовує сесію жертви | Так | Так |
| Впровадження скрипта | Ні | Так |
| Основна мета | Виконати дію | Вкрасти дані |
Які властивості безпеки порушуються
- Integrity - несанкціоновані зміни даних;
- іноді Confidentiality - опосередковано.
Як захищаються від CSRF
Основні заходи захисту:
- CSRF-токени (головне);
- перевірка Origin / Referer;
- SameSite cookies;
- підтвердження критичних дій;
- повторна автентифікація.
CSRF-токен - ключовий захист.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.