модуль ActionController::RequestForgeryProtection::ClassMethods
Публичные методы экземпляра
# File actionpack/lib/action_controller/metal/request_forgery_protection.rb, line 122
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не указан.
© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.