Я писал библиотеку защиты csrf для моего сайта в последнее время.Значок CSRF - два запроса = сбой?
Я генерирую случайный токен на запрос, если он не сгенерирован в $ _SESSION.
Все хорошо работает, проверено и хорошо - однако, думать об этом сценарии:
На моем сайте:
- Пользователь переходит на мой сайт (example.com) и логины.
- Теперь он открывает еще один злонамеренный сайт.
Вредоносный сайт теперь делает (в JavaScript):
- RUN ПЕРВЫЙ http://example.com .. и с JavaScript (регулярное выражение или любой другой) получить CSRF СИМВОЛ внутри HTML в форме, - говорят, что его "randomToken" ,
- С помощью JavaScript - теперь получать http://example.com/my-profile/?deletemyaccount=1&token=randomToken
Это может явно сделано с поста тоже не просто получить.
Я думал о проверке HTTP_REFERER, но это ненадежно.
Любые идеи о том, как защитить от этого? Это действительно возможно? На мой взгляд, такой тип атаки должен быть довольно простым с помощью jQuery.
Очень возможно использовать AJAX. Реферер не помог бы, так как любые заголовки могут обрабатываться в запросах AJAX. Я думаю, тебе не повезло. Вместо этого попробуйте использовать CAPTCHA. – Kenaniah