@MdaUZH

CSRF секретный ключ, вечная сессия?

Всем привет, интересует защита от CSRF атак.

Все бы хорошо, при инициализации сессии, генерирую уникальный токен, его вставляю во все формы и до обработки проверяю, но тут я не понимаю.

Разве такая атака не пройдет ?
раз атака проходит проверки типа -авторизация и прочее, разве не пройдет по токену?

вот пример:
я зашел на сайт банка, авторизовался, сгенерировался уникальный токен для защиты, он в сессии.
захожу на сайт где есть пост с картинкой:
смотри на картиночку  <img src=" bank.example .com/peredat=100000&for=komu-to.. " alt="check me">


Там стоит проверка уникального токена, разве не пройдет?
ведь токен существует и проблем нет, ясно что для таких задач GET не используется, но что-то подобное можно и с POST сделать, так ведь?

Другое дело "более жесткая" защита, где токен генерируется каждый раз для каждой формы.
но тут тоже может быть например такая ситуация:
1. я зашел на страницу с формой, токен сгенерировался.
2. я ничего не сделал вышел с сайта.
3. зашел на сайт злоумышленника, с этой же картиночкой

??? PROFIT, атака разве не удалась?

Если я чего-то не понимаю, не могли бы вы мне объяснить, почему нет?

Спасибо большое
  • Вопрос задан
  • 266 просмотров
Пригласить эксперта
Ответы на вопрос 2
VladimirAndreev
@VladimirAndreev
php web dev
нет, не удалась. если токен выдается POST запросом - то получить его из браузера жертвы не выйдет
Ответ написан
Stalker_RED
@Stalker_RED
1. я зашел на страницу с формой, токен сгенерировался.
2. я ничего не сделал вышел с сайта.
3. зашел на сайт злоумышленника, с этой же картиночкой


1. Сенерировался, записался в сессию и скрытое поле формы.
2. Форма уничтожена, в куках токен не сохранен, в сессии конечно остался, ну и фиг с ним. Даже если страница не закрыта, а живет в отдельной вкладке - все равно, т.к.:
3. картиночка не может отправить POST запрос, и даже если и могла-бы, в куках токена нет, доступа к скрытому полю формы в другой вкладке у картиночки тоже нет.

Итого: если злоумышленник не инжектнул свои скрипты на страницу банка, не внедрил свой плагин в браузер жертвы, не подсадил ему трояна в опрационку, и не расшифровал перехваченный трафик, то вроде как и сделать ничего он не может.

А если банк переводит деньги по get запросам - бегите от него.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы