2013-08-06 10 views
8

क्या मजबूत पैराम का उपयोग करके अक्षम करने के लिए वैसे भी है?रेल में 4 डिफ़ॉल्ट रूप से मजबूत पैरामीटर अक्षम करें

और मुझे पता है कि यह एक सुरक्षा भेद्यता है लेकिन मुझे वास्तव में इसकी आवश्यकता नहीं है/इसे चाहिए।

उत्तर

4

यदि "अक्षम" से आपका मतलब है कि रेल 3-शैली attr_accessible लाइनों पर वापस आना है, तो हाँ।

बस protected_attributes मणि का उपयोग करें।

2

मुझे ऐसा नहीं लगता है।

DHH टिप्पणी here on this pull request to add a disable switch to strong parameters

यह सब

वैसे भी जल्द ही एक विरासत चिंता का विषय है 4.0 रेल हर किसी पर मजबूत मापदंडों के लिए मजबूर हो जाएगा और आप इसे बंद करने में सक्षम नहीं होगा के रूप में।

39

विशेषता सुरक्षा को बंद करना लगभग हमेशा एक बुरा विचार है।

कि अनिवार्य टिप्पणी के साथ

रास्ते से बाहर, यहाँ इसे बंद करने के लिए है:

config.action_controller.permit_all_parameters = true 

config/application.rb

+0

बस कोशिश की और यह काम नहीं किया मैं (एक रेल 4.0.0 ऐप पर)। – Batkins

+2

मेरे लिए काम किया। सहमत - यह आम तौर पर एक बुरा विचार है - लेकिन मेरा उपयोग केस एक व्यवस्थापक साइट है जहां व्यवस्थापक कुछ भी बदल सकते हैं। – Zubin

+1

यह मेरे लिए काम किया। लाइन को अपने एप्लिकेशन क्लास के अंदर रखना सुनिश्चित करें और HTTP सर्वर को रीबूट करें। – Guildenstern70

-2

पाठ्यक्रम आप कर सकते हैं के में रखें यह! मजबूत पैरामीटर्स की आधिकारिक दस्तावेज़ (https://github.com/rails/strong_parameters) के अनुसार, आप अपने config/application.rb के लिए कोड नीचे जोड़कर निष्क्रिय कर सकते हैं:

config.active_record.whitelist_attributes = false 

यह मेरे लिए काम करता रेल में 3.2

+1

यह संरक्षित_ सामग्री को अक्षम करना है – brauliobo

6

मैं इस समस्या में पड़ गए, जहां मैं स्ट्रिप से वेबहूक से सभी पैरा को स्टोर करने की कोशिश कर रहा था।

यदि आप एक ही उदाहरण के लिए सभी पैरामीटर को अनुमति देना चाहते हैं, तो आप अपनी प्रारंभिक विधि में इसे पार करने से पहले अपने पैराम ऑब्जेक्ट पर #to_hash को कॉल कर सकते हैं।

पूर्व:

@my_object = MyObject.new(params[:my_object].to_hash) 
0

को रोकने के लिए मना गुण आपके अनुप्रयोगों आप चेक बाहर पैच कर सकते हैं के लिए जाँच की जा रही ..

उदाहरण के लिए निम्नलिखित कोड में

config डाल/initializers/disabled_strong_parameters.rb

module ActiveModel 
    module ForbiddenAttributesProtection 
    protected 
     def sanitize_for_mass_assignment(attributes) 
      attributes 
     end 
     alias :sanitize_forbidden_attributes :sanitize_for_mass_assignment 
    end 
end 
संबंधित मुद्दे