Ruby on Rails 5.2 - ActionController::RequestForgeryProtection::ClassMethods

मॉड्यूल एक्शनकंट्रोलर :: RequestForgeryProtection :: ClassMethods




ruby

मॉड्यूल एक्शनकंट्रोलर :: RequestForgeryProtection :: ClassMethods

सार्वजनिक प्रवृत्ति के तरीके

protect_from_forgery (विकल्प = {}) स्रोत दिखाएं
# 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

आप पहले सत्यापन को छोड़ कर नियंत्रक पर जालसाजी सुरक्षा को अक्षम कर सकते हैं:

skip_before_action :verify_authenticity_token

मान्य विकल्प:

  • :only/:except - केवल कार्रवाई के एक सबसेट के लिए जालसाजी संरक्षण लागू करें। only: [ :create, :create_all ] उदाहरण के लिए only: [ :create, :create_all ]

  • :if/:unless - पूरी तरह से पारित प्रोक या विधि संदर्भ के आधार पर जालसाजी संरक्षण को बंद :if/:unless करें।

  • :prepend - डिफ़ॉल्ट रूप से, प्रमाणीकरण टोकन का सत्यापन आपके आवेदन में #protect_from_forgery कॉल की स्थिति में जोड़ा जाएगा। इसका मतलब यह है कि पहले कॉलबैक को पहले चलाया जाता है। यह तब उपयोगी होता है जब आप अपनी जालसाजी सुरक्षा को अन्य कॉलबैक पर निर्भर करना चाहते हैं, जैसे प्रमाणीकरण तरीके (Oauth बनाम कुकी ऑर्टिकल)।

    यदि आपको कॉलबैक श्रृंखला की शुरुआत में सत्यापन जोड़ने की आवश्यकता है, तो prepend: true उपयोग करें prepend: true

  • :with - असत्यापित अनुरोध को संभालने के लिए विधि सेट करें।

मान्य असत्यापित अनुरोध हैंडलिंग तरीके हैं:

  • :exception - एक्शनकंट्रोलर उठाता है :: InvalidAuthenticityToken अपवाद।

  • :reset_session - सत्र को रीसेट करता है।

  • :null_session - अनुरोध के दौरान एक खाली सत्र प्रदान करता है, लेकिन इसे पूरी तरह से रीसेट नहीं करता है। डिफ़ॉल्ट के रूप में उपयोग किया जाता है यदि :with विकल्प के :with निर्दिष्ट नहीं है।

Skip_forgery_protection (विकल्प = {}) स्रोत दिखाएं
# 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 देखें।