По умолчанию защита сообщения CSRF формы в Rails создает токен аутентификации для пользователя, который изменяется только при изменении сеанса пользователя. Один из наших клиентов проверил аудит безопасности нашего сайта и отметил, что это проблема.Является ли защита CSRF по умолчанию Rails небезопасной?
Заявление аудитора состояло в том, что если бы у нас также была уязвимость XSS, которую злоумышленник мог бы захватить токен аутентификации другого пользователя и использовать его для атак CSRF до истечения срока действия сеанса пользователя.
Но мне кажется, что если бы у нас была такая уязвимость XSS, злоумышленник мог так же легко захватить cookie сеанса другого пользователя и войти в систему как пользователь. Или даже просто звоните в наш REST Api из сценария, поскольку на него нападают пользователи. Возможность установки атаки CSRF в такой ситуации не кажется хуже, проблема заключается в уязвимости XSS.
Я что-то пропустил? Есть ли реальная проблема с защитой CSRF по умолчанию в Rails?
Обратите внимание, что уязвимость в CSRF для Rails была обнаружена и существует в Rails версии 3.0.3 и ниже. См. Http://weblog.rubyonrails.org/2011/2/8/csrf-protection-bypass-in-ruby-on-rails. Обновите до 3.0.4, чтобы устранить эту проблему. –
В качестве побочного примечания, файлы cookie сеанса должны быть установлены на «HttpOnly», поэтому они не могут быть украдены XSS. –