В чём разница между XSS и CSRF

Источник: «XSS vs CSRF»
В этой статье мы объясним различия между XSS и CSRF, и обсудим, могут ли токены CSRF предотвратить XSS атаки.

Межсайтовые сценарии/Межсайтовый скриптинг (XSS) позволяет злоумышленнику выполнять произвольный JavaScript код в браузере пользователя-жертвы.

Подделка межсайтовых запросов (CSRF) позволяет злоумышленнику побудить пользователя-жертву выполнить действия, которые он не намеревался совершать.

Последствия XSS уязвимостей, обычно, более серьёзны, чем последствия CSRF уязвимостей:

Могут ли CSRF токены предотвратить XSS-атаки

Некоторые XSS-атаки действительно можно предотвратить за счёт эффективного использования CSRF токена. Рассмотрим простую Отражённую XSS-уязвимость, которую можно тривиально использовать следующим образом:

https://insecure-website.com/status?message=<script>/*+Bad+stuff+here...+*/</script>

Теперь предположим, что уязвимая функция включает в себя CSRF токен:

https://insecure-website.com/status?csrf-token=CIwNZNlR4XbisJF39I8yWnWX9wX4WFoz&message=<script>/*+Bad+stuff+here...+*/</script>

Если предложить, что сервер правильно проверяет токен CSRF и отклоняет запросы без валидного токена, тогда токен предотвращает использование XSS уязвимости. Подсказка здесь в названии: межсайтовые сценарии, по крайней мере, в его отражённой форме, включает межсайтовый запрос. Но позволяя злоумышленнику подделать межсайтовый запрос, приложение предотвращает тривиальное использование XSS уязвимости.

Здесь возникает несколько важных предостережений:

Дополнительные материалы

Предыдущая Статья

Laravel API: Создание API

Следующая Статья

Тестирование конечных точек JSON:API с PestPHP