В последнее время я пишу библиотеку защиты csrf для своего сайта.
Я генерирую случайный токен для запроса, если он не сгенерирован в $ _SESSION.
Все работает хорошо, протестировано ихорошо - однако, подумайте об этом сценарии:
На моем сайте:
- Пользователь заходит на мой сайт (example.com) И логины.
- Теперь он открывает другой вредоносный сайт.
Вредоносный сайт теперь делает (в javascript):
- RUN FIRST http://example.com ..и с помощью javascript (regexp или чего-либо еще) получите csrf TOKEN внутри html в форме - скажите его «randomToken».
- С javascript - теперь получите http://example.com/my-profile/?deletemyaccount=1&token=randomToken
Thisочевидно, можно было бы сделать и с почтой, а не просто получить.
Я думал о проверке HTTP_REFERER, но это ненадежно.
Есть идеи, как защититься от этого?Это действительно возможно?На мой взгляд, такого рода атаки должны быть довольно легкими с помощью jQuery.