CSRF защита и межсайтовый доступ - PullRequest
1 голос
/ 06 мая 2010

Я работаю над межсайтовой аутентификацией (некоторые домены имеют общую аутентификацию). Поэтому я хочу отправить данные аутентификации (логин, пароль) в основной домен от других.

Как использовать protect_from_forgery и как проверить, получены ли данные с действительного домена?

Сейчас я думаю о том, чтобы отключить protect_from_forgery для контроллера сеанса и проверить доменное имя полученных данных.

Но, может быть, я могу настроить защиту CSRF не только для одного домена?

Ответы [ 2 ]

2 голосов
/ 06 мая 2010

Защита работает с проверкой сеанса [: _ csrf_token], поэтому, если ваш сеанс одинаков во всем вашем домене, protect_from_forgery может работать.

1 голос
/ 06 мая 2010

То, что вы планируете, - это само определение уязвимости CSRF. Заставить пользователя войти или выйти, как правило, бесполезно для злоумышленника. Чтобы осуществить этот взлом, злоумышленник должен знать имя пользователя и пароль, что лишает цели «переброски сеанса» в аутентифицированном сеансе другого пользователя. Как хардкорный хакер, который пишет CSRF-эксплойты Я говорю вам, что это не серьезная проблема.

Простой способ исправить это - проверить реферер и убедиться, что запрос на вход в систему происходит из белого списка доменов. Еще один способ исправить это - использовать Capthca, например reCapthca. Да, вы правильно прочитали. Причина, по которой это работает, заключается в том, что злоумышленник не может решить проблему с помощью javascript или flash, чтобы «подделать» действительный запрос на вход в систему.

...