модуль ActionController::RequestForgeryProtection::ClassMethods
Публичные методы экземпляра
# File actionpack/lib/action_controller/metal/request_forgery_protection.rb, line 131
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 против аутентификации по куки).Если вам нужно добавить проверку в начало цепочки колбэков, используйте
prepend: true. -
:with- Установить метод для обработки неподтверждённого запроса.
Допустимые методы обработки неподтверждённых запросов:
-
:exception- Вызывает исключение ActionController::InvalidAuthenticityToken. -
:reset_session- Сбрасывает сессию. -
:null_session- Предоставляет пустую сессию во время запроса, но не полностью её сбрасывает. Используется по умолчанию, если опция:withне указана.
# File actionpack/lib/action_controller/metal/request_forgery_protection.rb, line 145
def skip_forgery_protection(options = {})
skip_before_action :verify_authenticity_token, options
end Отключить защиту от подделки запросов. Это обёртка для:
skip_before_action :verify_authenticity_token
См. skip_before_action для допустимых параметров.
© 2004–2020 David Heinemeier Hansson
Licensed under the MIT License.