CSRF Межсайтовая подделка запроса -- что это такое (цсрф, МПЗ)
Primary tabs
Forums:
CSRF (Сross Site Request Forgery) -- говорить о межсайтовой подделке запроса (МПЗ) можно всегда, когда в какой-то другой системе (скажем на другом сайте) пользователя заставляют (так или иначе) перейти по ссылке (возможно неявно), переход по которой проведёт на вашем сайте какое-то действие.
Примеры CSRF уязвимостей и их эксплуатации
Самый простой пример -- картника размещённая на чужом сайте, в качестве адреса которой указана ссылка на обработчик, производящий какие-то действия на вашем сайте.
- В лучшем случае это может быть какое-то безобидное действие --скажем в источник подставят ссылку типа выхода из системы:
<img src="http://адресвашегосайта.ru/logout">
- В худшем -- могут попросить что-то посерьёзнее, например, пусть ваш сайт умеет переводить деньги между пользователями, а обработчик действия просто проверяет GET-параметр, тогда злоумышленник может сформировать такую ссылку:
<img src="http://адрес.ru/give-money?user-id=100500?amount=100">
-- стоит залогиненному у вас пользователю открыть любой сайт с такой картинкой, как другой пользователь вашего сайта с id = 100500 станет богаче на 100 у.е.
Как бороться с CSRF-атаками
Обычно применяют такой способ (по пунктам):
- С каждой сессией пользователя связывают уникальный ключ (разный для разных пользователей). Но тут главное, чтобы это ключ при входе в систему у разных пользователей был разным.
- Данные передают не через GET, а через POST (т.е. обработчики ожидают именно POST запрос для критических действий, а именно тех, что меняют состояние сервера)
- При приёме POST запроса проверяется -- передано ли поле с секретным ключом, если он верный -- то запускается обработка запроса.
Подробнее: https://ru.wikipedia.org/wiki/%D0%9C%D0%...
- Log in to post comments
- 6174 reads