आप एक नया केवल params
जो आप उम्मीद और FTP
लिंक का एक हिस्सा हो सकता है और कि अपने अतिरिक्त पैरामीटर विलय करने के लिए उपयोग करने के लिए अनुमति देना चाहते हैं की सामग्री पर आधारित हैश बनाना चाहिए।
क्या आप मुझे जो कुछ भी करना चाहते हैं उसे जोड़ने के लिए मुझे FTP
लिंक जोड़ने की अनुमति देता है, जिससे सुरक्षा भेद्यता का दरवाजा खुलता है। params.merge(...
में params
के स्थान पर उपयोग के लिए हैश बनाने के द्वारा आप प्रभावी रूप से प्रत्याशित क्वेरीस्ट्रिंग घटकों को आपके द्वारा प्रस्तुत किए जा रहे टेम्पलेट में उपयोग के लिए श्वेतसूची बना रहे हैं।
एक GET
उदाहरण के रूप में, यदि आप
/some/path?opt1=val1&opt2=val2
अपने नियंत्रक कार्रवाई की तरह एक यूआरएल की उम्मीद आप
@cleaned_params = { opt1: params[:opt1], opt2: params[:opt2] }
@cleaned_params.merge! action: :ftp, archive: archive, recipient: :company
कर सकता और फिर link_to
= link_to "FTP", @cleaned_params
को @cleaned_params पारित
इस तरह अगर मैं मैन्युअल रूप में की तरह
/some/path?opt1=val1&opt2=val2&maliciousopt=somexss
params[:maliciousopt]
यह कभी नहीं होगा एक URL दर्ज अपने FTP
link_to
अपने ध्यान में रखते हुए।
समान व्यवहार POST
अनुरोध करने के लिए लागू होता है, केवल दुर्भावनापूर्ण मैं प्रस्तुत करने में यह
<input type="hidden" name="maliciousopt" value="somexss" />
धन्यवाद से पहले फार्म के लिए एक जोड़े क्षेत्रों जोड़ सकते हैं होने के लिए ... तुम मुझे एक उदाहरण दे सकते हैं? मुझे वास्तव में यह नहीं मिलता है। – snowangel
आपके लिए मेरा उत्तर अपडेट किया गया। – deefour
पूरी तरह से ऋणी - धन्यवाद। – snowangel