время жизни токенов csrf - PullRequest
       4

время жизни токенов csrf

1 голос
/ 29 октября 2010

Я использую механизм Rails request_forgery_protection для защиты своих действий POST от CSRF-атак и капчу для защиты действий GET.Таким образом, если кто-то проведет двухфазную атаку в течение одного сеанса, ПОЛУЧИТ форму с текущим токеном и затем отправит поддельный запрос с этим токеном, он в конечном итоге столкнется с проверкой капчи.* Я застрял с этим, потому что Rails не регенерирует токен CSRF до конца сессии.Это не кажется мне правильным, я думаю, что токен должен быть обновлен до следующего действия.Мне интересно, может, я что-то подправил?Есть ли другой способ сделать это?

Спасибо.

Ответы [ 2 ]

1 голос
/ 30 октября 2010

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

before_filter :reset_csrf


private
def reset_csrf
  session[:_csrf_token] = nil if request.get?
end
0 голосов
/ 03 ноября 2010

Если токен формы НЕ генерируется повторно для каждого запроса страницы, эта защита плохая. Я столкнулся с этим некоторое время назад (при тестировании Redmine, который основан на RoR) и сообщил об этой проблеме, но не перепроверял ее.

Если он все еще не восстановлен, я предлагаю вам сообщить об этом команде RoR.

...