Ruby on Rails 5.2 - ActionDispatch::Http::FilterParameters

मॉड्यूल ActionDispatch :: Http :: FilterParameters




ruby

मॉड्यूल ActionDispatch :: Http :: FilterParameters

आपको संवेदनशील मापदंडों को निर्दिष्ट करने की अनुमति देता है जो अनुरोध के क्वेरी स्ट्रिंग को देखते हुए अनुरोध लॉग से बदल दिया जाएगा और फ़िल्टर करने के लिए परम हैश के सभी उप-हैश। हैश से केवल कुछ उप-कुंजियों को फ़िल्टर करना डॉट नोटेशन का उपयोग करके संभव है: 'credit_card.number'। यदि एक ब्लॉक दिया जाता है, तो परम हैश और सभी उप-हैश की प्रत्येक कुंजी और मूल्य को पास किया जाता है, जहां स्ट्रिंग या प्रतिस्थापित या समान विधि का उपयोग करके मूल्य या कुंजी को बदला जा सकता है।

env["action_dispatch.parameter_filter"] = [:password]
=> replaces the value to all keys matching /password/i with "[FILTERED]"

env["action_dispatch.parameter_filter"] = [:foo, "bar"]
=> replaces the value to all keys matching /foo|bar/i with "[FILTERED]"

env["action_dispatch.parameter_filter"] = [ "credit_card.code" ]
=> replaces { credit_card: {code: "xxxx"} } with "[FILTERED]", does not
change { file: { code: "xxxx"} }

env["action_dispatch.parameter_filter"] = -> (k, v) do
  v.reverse! if k =~ /secret/i
end
=> reverses the value to all keys matching /secret/i

स्थिरांक

KV_RE
PAIR_RE

पब्लिक क्लास के तरीके

# File actionpack/lib/action_dispatch/http/filter_parameters.rb, line 34
def initialize
  super
  @filtered_parameters = nil
  @filtered_env        = nil
  @filtered_path       = nil
end
सुपरक्लास विधि कहता है

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

फ़िल्टर्ड_नव () स्रोत दिखाएं
# File actionpack/lib/action_dispatch/http/filter_parameters.rb, line 47
def filtered_env
  @filtered_env ||= env_filter.filter(@env)
end

बदले हुए सभी संवेदनशील डेटा के साथ request.env का हैश लौटाता है।

फ़िल्टर्ड_परेटर्स () स्रोत दिखाएं
# File actionpack/lib/action_dispatch/http/filter_parameters.rb, line 42
def filtered_parameters
  @filtered_parameters ||= parameter_filter.filter(parameters)
end

बदले गए सभी संवेदनशील डेटा के साथ मापदंडों का एक हैश।

फ़िल्टर्ड_पथ () स्रोत दिखाएं
# File actionpack/lib/action_dispatch/http/filter_parameters.rb, line 52
def filtered_path
  @filtered_path ||= query_string.empty? ? path : "#{path}?#{filtered_query_string}"
end

प्रतिस्थापित सभी संवेदनशील GET मापदंडों के साथ एक पथ का पुनर्निर्माण करता है।

निजी उदाहरण तरीके

# File actionpack/lib/action_dispatch/http/filter_parameters.rb, line 64
def env_filter # :doc:
  user_key = fetch_header("action_dispatch.parameter_filter") {
    return NULL_ENV_FILTER
  }
  parameter_filter_for(Array(user_key) + ENV_MATCH)
end
फ़िल्टर्ड_क्वेरी_स्ट्रिंग () स्रोत दिखाएं
# File actionpack/lib/action_dispatch/http/filter_parameters.rb, line 77
def filtered_query_string # :doc:
  query_string.gsub(PAIR_RE) do |_|
    parameter_filter.filter($1 => $2).first.join("=")
  end
end
पैरामीटर_फिल्टर () स्रोत दिखाएं
# File actionpack/lib/action_dispatch/http/filter_parameters.rb, line 58
def parameter_filter # :doc:
  parameter_filter_for fetch_header("action_dispatch.parameter_filter") {
    return NULL_PARAM_FILTER
  }
end
पैरामीटर_filter_for (फ़िल्टर) स्रोत दिखाएं
# File actionpack/lib/action_dispatch/http/filter_parameters.rb, line 71
def parameter_filter_for(filters) # :doc:
  ParameterFilter.new(filters)
end