модуль ActionController::RequestForgeryProtection::ClassMethods
Общедоступные методы экземпляров
# File actionpack/lib/action_controller/metal/request_forgery_protection.rb, line 129
def protect_from_forgery(options = {})
options = options.reverse_merge(prepend: false)
self.forgery_protection_strategy = protection_method_class(options[:with] || :null_session)
self.request_forgery_protection_token ||= :authenticity_token
before_action :verify_authenticity_token, options
append_after_action :verify_same_origin_request
end Включить защиту от подделки запросов. Имейте в виду, что запросы GET и HEAD не проверяются.
class ApplicationController < ActionController::Base protect_from_forgery end class FooController < ApplicationController protect_from_forgery except: :index end
Вы можете отключить защиту от подделки запросов в контроллере, пропуская проверку с помощью before_action:
skip_before_action :verify_authenticity_token
Допустимые параметры:
-
:only/:except- Применять защиту от подделки запросов только к подмножеству действий. Например,only: [ :create, :create_all ]. -
:if/:unless- Полностью отключить защиту от подделки запросов в зависимости от переданного Proc или ссылки на метод. -
:prepend- По умолчанию проверка токена аутентификации будет добавлена в позицию вызова #protect_from_forgery в вашем приложении. Это означает, что любые колбеки, добавленные перед ним, будут выполнены первыми. Это полезно, когда защита от подделки запросов должна зависеть от других колбеков, таких как методы аутентификации (Oauth против аутентификации по cookie).Если вам нужно добавить проверку в начало цепочки колбеков, используйте
prepend: true. -
:with- Установить метод для обработки неподтверждённых запросов.
Допустимые методы обработки неподтверждённых запросов:
-
:exception- Выбрасывает исключение ActionController::InvalidAuthenticityToken. -
:reset_session- Сбрасывает сеанс. -
:null_session- Предоставляет пустой сеанс во время запроса, но не сбрасывает его полностью. Используется по умолчанию, если параметр:withне указан.
# File actionpack/lib/action_controller/metal/request_forgery_protection.rb, line 143
def skip_forgery_protection(options = {})
skip_before_action :verify_authenticity_token, options
end Отключить защиту от подделки запросов. Это оболочка для:
skip_before_action :verify_authenticity_token
См. skip_before_action для разрешённых параметров.
© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.