2014-06-10 2 views
0

В Rails, используя программу, если CSRF Check не работает, текущий сеанс пользователя очищается, т. Е. Регистрирует пользователя, потому что сервер предполагает, что это атака (что является правильным/желаемое поведение). Но запрос завершен, поэтому запись пользователя все еще создана. Затем Хакер может войти в систему правильно. Как я могу остановить метод от продолжения, как только разработчик осознает, что auth_token неверен?Сообщение CSRF check, deves все еще выполняет полную функцию

ответ

0

Devise не проверяет токен auth - это контроллер действия, который делает это (хотя он вызывает на вашем контроллере handle_unverified_request, так что вы можете настроить поведение). В рельсах 4 и выше вы можете также указать, что происходит по умолчанию, когда маркер аутентификации недействителен:

protect_from_forgery with: :exception 

вызывает исключение воспитываться, что бы остановить запрос обрабатывается.

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

+0

Отлично, большое спасибо. Я просто хотел, чтобы исключение происходило всякий раз, когда пользователь делал что-то странное –

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