Що таке підробка міжсайтових запитів?

CSRF або підробка міжсайтових запитів — це вразливість веб-сайту, через яку зловмисник може спричинити дію під час сеансу жертви на іншому веб-сайті. Одна з речей, яка робить CSRF таким великим ризиком, полягає в тому, що він навіть не вимагає взаємодії з користувачем, все, що потрібно, це щоб жертва переглянула веб-сторінку з експлойтом.

Порада: CSRF зазвичай вимовляється буква за буквою або як «морський прибій».

Як працює атака CSRF?

Атака передбачає створення зловмисником веб-сайту, який має спосіб зробити запит на іншому веб-сайті. Це може вимагати взаємодії з користувачем, наприклад, змусити їх натиснути кнопку, але це також може бути без взаємодії. У JavaScript є способи автоматичного виконання дії. Наприклад, зображення нуль на нуль пікселів не буде видимим для користувача, але його можна налаштувати так, щоб його «src» надсилало запит на інший веб-сайт.

JavaScript є мовою клієнта, це означає, що код JavaScript запускається у браузері, а не на веб-сервері. Завдяки цьому комп’ютер, який робить запит CSRF, насправді є комп’ютером жертви. На жаль, це означає, що запит виконується з усіма дозволами, які має користувач. Після того, як атакуючий веб-сайт обманом змусив жертву зробити запит CSRF, запит по суті неможливо відрізнити від користувача, який зазвичай робить запит.

CSRF є прикладом «заплутаної атаки заступника» проти веб-браузера, оскільки зловмисник обманом обманює браузер і використовує його дозволи без цих привілеїв. Ці дозволи є вашими маркерами сеансу та автентифікації для цільового веб-сайту. Ваш браузер автоматично включає ці дані в будь-який запит, який він робить.

Атаки CSRF дещо складні в організації. Перш за все, цільовий веб-сайт повинен мати форму або URL-адресу, які мають такі побічні ефекти, як видалення вашого облікового запису. Потім зловмиснику необхідно створити запит на виконання бажаної дії. Нарешті, зловмиснику потрібно змусити жертву завантажити веб-сторінку з експлойтом, поки вони ввійшли на цільовий веб-сайт.

Щоб запобігти проблемам CSRF, найкраще, що ви можете зробити, це включити маркер CSRF. Маркер CSRF — це випадково згенерований рядок, який встановлюється як файл cookie, значення має включатися в кожну відповідь разом із заголовком запиту, який містить це значення. Хоча атака CSRF може включати файл cookie, вона не може визначити значення токена CSRF для встановлення заголовка, тому атака буде відхилена.