CSRF или подделка межсайтовых запросов - это уязвимость веб-сайта, при которой злоумышленник может вызвать действие во время сеанса жертвы на другом веб-сайте. Одна из вещей, которая делает CSRF настолько рискованным, заключается в том, что он даже не требует взаимодействия с пользователем, все, что нужно, - это чтобы жертва просмотрела веб-страницу с эксплойтом.
Совет: CSRF обычно произносится буква за буквой или «морской прибой».
Как работает CSRF-атака?
Атака заключается в том, что злоумышленник создает веб-сайт, у которого есть метод отправки запроса на другой веб-сайт. Это может потребовать взаимодействия с пользователем, например, заставить его нажать кнопку, но это также может быть без взаимодействия. В JavaScript есть способы вызвать автоматическое выполнение действия. Например, изображение размером ноль на ноль пикселей не будет видно пользователю, но его можно настроить так, чтобы его src отправлял запрос на другой веб-сайт.
JavaScript - это клиентский язык, это означает, что код JavaScript выполняется в браузере, а не на веб-сервере. Благодаря этому компьютер, который делает запрос CSRF, на самом деле является компьютером жертвы. К сожалению, это означает, что запрос выполняется со всеми разрешениями, которые есть у пользователя. После того, как атакующий веб-сайт обманом заставил жертву сделать CSRF-запрос, этот запрос практически неотличим от пользователя, выполняющего обычный запрос.
CSRF является примером «атаки запутанного заместителя» на веб-браузер, поскольку злоумышленник без этих привилегий обманом заставляет браузер использовать свои разрешения. Эти разрешения являются токенами сеанса и аутентификации на целевом веб-сайте. Ваш браузер автоматически включает эти данные в любой запрос, который он делает.
CSRF-атаки довольно сложно организовать. Прежде всего, на целевом веб-сайте должна быть форма или URL-адрес, который имеет побочные эффекты, такие как удаление вашей учетной записи. Затем злоумышленнику необходимо сформировать запрос на выполнение желаемого действия. Наконец, злоумышленник должен заставить жертву загрузить веб-страницу с эксплойтом, пока она вошла на целевой веб-сайт.
Лучшее, что вы можете сделать, чтобы предотвратить проблемы CSRF, - это включить токен CSRF. Маркер CSRF - это случайно сгенерированная строка, которая устанавливается как файл cookie, значение должно быть включено в каждый ответ вместе с заголовком запроса, который включает значение. Хотя CSRF-атака может включать файл cookie, невозможно определить значение токена CSRF для установки заголовка, и поэтому атака будет отклонена.