Ruby: protect_from_forgery когда это поднято?
У меня есть следующий кусок кода:
class Foo < ActiveRecord::Base
protect_from_forgery
end
Я сомневаюсь, когда protect_from_forgery
будет называться? когда создается экземпляр Foo?
заранее спасибо
1 ответ
Кто-то с большим знанием, чем я, может знать лучший ответ, но вот как я его понимаю:
Когда браузер отправляет запрос на публикацию, rails включает дополнительный токен аутентификации с запросами, которые соответствуют этому сеансу пользователей. Если бы я знал токен аутентификации других пользователей, я мог бы добавить на страницу элемент HTML, который включает их токен, и отправлять запросы, выдавая себя за пользователя. Это называется подделкой межсайтовых запросов. Чтобы защитить ваш сайт от таких атак, в rails есть метод под названием protect_from_forgery
, Этот метод должен быть размещен в верхней части вашего контроллера приложений, поэтому проверяйте каждый запрос на подлинность.
Дальнейшее чтение можно найти в Руководстве по безопасности Rails.