Токен CSRF - два запроса = сбой? - PullRequest
1 голос
/ 09 февраля 2012

В последнее время я пишу библиотеку защиты csrf для своего сайта.

Я генерирую случайный токен для запроса, если он не сгенерирован в $ _SESSION.

Все работает хорошо, протестировано ихорошо - однако, подумайте об этом сценарии:

На моем сайте:

  1. Пользователь заходит на мой сайт (example.com) И логины.
  2. Теперь он открывает другой вредоносный сайт.

Вредоносный сайт теперь делает (в javascript):

  1. RUN FIRST http://example.com ..и с помощью javascript (regexp или чего-либо еще) получите csrf TOKEN внутри html в форме - скажите его «randomToken».
  2. С javascript - теперь получите http://example.com/my-profile/?deletemyaccount=1&token=randomToken

Thisочевидно, можно было бы сделать и с почтой, а не просто получить.

Я думал о проверке HTTP_REFERER, но это ненадежно.

Есть идеи, как защититься от этого?Это действительно возможно?На мой взгляд, такого рода атаки должны быть довольно легкими с помощью jQuery.

1 Ответ

3 голосов
/ 09 февраля 2012

Другой сайт не сможет получить содержимое вашего сайта через javascript, браузеры явно запрещают это.Ознакомьтесь с Одинаковой политикой происхождения .

...