CSRF (подделка межсайтовых запросов) подделка межсайтовых запросов
Концепция: относится к хакеру, который заманивает пользователя открыть веб-сайт хакера, а на веб-сайте хакера использует статус входа пользователя для инициирования межсайтового запроса. Проще говоря, CSRF-атака означает, что хакеры пользуются статусом входа пользователя и совершают какие-то плохие вещи через сторонний сайт .
Метод атаки:
1- Автоматически инициировать запрос Get
Например, скрыть запрос на передачу в теге img, обмануть браузер, что это изображение, и инициировать запрос на передачу, когда он загружается.
2- Автоматически инициировать запрос POST
Создайте скрытую форму на веб-странице, которая содержит интерфейс передачи.Побуждая пользователя войти в систему, форма автоматически отправляется для выполнения операции передачи.
3- Поощряйте пользователей переходить по ссылке
Побуждая пользователей щелкнуть ссылку, содержащую интерфейс перевода, осуществляется перевод пользовательских средств.
Таким образом, CSRF-атакам не нужно внедрять вредоносный код на страницу пользователя, а нужно использовать уязвимости сервера и статус входа пользователя для проведения неожиданных атак.
Как предотвратить CSRF-атаки:
Три необходимых условия для запуска CSRF-атаки:
1- Целевой веб-сайт должен иметь уязвимость CSRF.
2- Пользователь вошел на целевой сайт и остается авторизованным на сайте в браузере.
3- Нужно, чтобы пользователь открыл сторонний сайт, который может быть сайтом хакера или каким-то форумом.
При соблюдении трех вышеперечисленных условий хакеры могут проводить CSRF-атаки.
Как защитить сервер от атаки CSRF, обычно существуют следующие способы:
1- В полной мере используйте атрибут SameSite файла cookie.
Установите атрибут SameSite в файле cookie, чтобы реализовать передачу некоторых ключевых данных файла cookie.
2- Проверьте исходный сайт запроса
Определите, следует ли запрещать запросы со сторонних сайтов, установив атрибуты Referer и Origin в заголовке HTTP-запроса.
3-токен CSRF
Когда на сервер делается запрос, сервер генерирует токен CSRF.Если клиент хочет инициировать запрос на передачу, ему необходимо принести этот токен, и сервер проверит, является ли токен законным.Если это инициированный запрос третьим лицом, оно будет отклонено, если оно недоступно или является незаконным.
Ссылка: Geek Time — как работают и практикуются браузеры