Возможно, это не имеет прямого отношения к заданному вопросу, но необходимо указать, что атаки с использованием межсайтовых сценариев могут открыть двери для CSRF. Даже решения на основе токенов, используемые для предотвращения CSRF, могут быть скомпрометированы XSS.
Возьмите следующий сценарий.
Форма используется для обновления информации о пользователе.
<script>
...
var userID=getUserId();//method makes AJAX call to get user ID
...
</script>
...
<form name="UpdateUserProfile">
<input type='hidden' id='userId' value='userID_attacker_cannot_guess'>
<input type='hidden' id='userName' value='goodUser'>
<input type='hidden' id='email' value='goodUser@goodsite.com'>
...
</form>
Предполагая, что идентификатор пользователя уникален и не может быть легко угадан, мы можем предотвратить CRSF без токена (запрос злоумышленника не сможет иметь правильный идентификатор пользователя).
Но если злоумышленник может прочитать значение userID
, используя XSS-атаку, он может затем создать поддельный запрос, включив в него правильный идентификатор пользователя.
Хотя XSS не нужен для CSRF-атак, это облегчит задачу.
Проверьте следующие ресурсы.
Подделка межсайтовых запросов (CSRF) -OWASP
Межсайтовый скриптинг (XSS) -OWASP