Я прочитал о CSRF и о том, как использовать для предотвращения этого неактивный шаблон маркера Unpredictable Synchronizer. Я не совсем понял, как это работает.
Возьмем этот сценарий:
Пользователь регистрируется на сайте с этой формой:
<form action="changePassword" method="POST">
<input type="text" name="password"><br>
<input type="hidden" name="token" value='asdjkldssdk22332nkadjf' >
</form>
Сервер также сохраняет токен в сеансе. Когда запрос отправляется, он сравнивает токен в данных формы с токеном в сеансе.
Как это предотвращает CSRF, когда хакер может писать код JavaScript, который будет:
- Отправьте запрос GET на сайт
- Получить текст html, содержащий форму запроса.
- Найдите текст html для токена CSRF.
- Сделать вредоносный запрос с помощью этого токена.
Не хватает чего-то?