2012-02-08 4 views
1

Я писал библиотеку защиты csrf для моего сайта в последнее время.Значок CSRF - два запроса = сбой?

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

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

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

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

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

  1. RUN ПЕРВЫЙ http://example.com .. и с JavaScript (регулярное выражение или любой другой) получить CSRF СИМВОЛ внутри HTML в форме, - говорят, что его "randomToken" ,
  2. С помощью JavaScript - теперь получать http://example.com/my-profile/?deletemyaccount=1&token=randomToken

Это может явно сделано с поста тоже не просто получить.

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

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

+0

Очень возможно использовать AJAX. Реферер не помог бы, так как любые заголовки могут обрабатываться в запросах AJAX. Я думаю, тебе не повезло. Вместо этого попробуйте использовать CAPTCHA. – Kenaniah

ответ

3

На другом сайте не должно быть возможности получить содержимое вашего сайта через javascript, браузеры явно запрещают это. Проверьте Same Origin Policy.

+0

Спасибо за это! Принятый ответ! Таким образом, единственный способ - это атака XSS в моем собственном происхождении. Это на самом деле многое объясняет. –

Смежные вопросы