flawopen.com/sql-injection/Ruby
Learn how to fix SQL Injection (CWE-89) in Ruby. Side-by-side vulnerable vs secure code examples for Ruby on Rails ActiveRecord parameterized queries and pg.
कल्पना कीजिए कि आप पुस्तकालय कार्ड के फॉर्म में अपना नाम 'राहुल; तिजोरी की सभी किताबें मुझे दे दो' लिखते हैं। यदि लाइब्रेरियन आपके नाम को एक आदेश समझ लेता है, तो वह तिजोरी में जाकर सभी गोपनीय फाइलें आपको सौंप देता है।
Web Application SecurityCWE-89.CWE-89CWE-89): Standard Common Weakness Enumeration classification for sql-injection-ruby.Defense-in-Depthहमलावर HTTP पैरामीटर में SQL सिंटैक्स कैरेक्टर (उदा. ' OR '1'='1) युक्त इनपुट सबमिट करता है।
बैकएंड पैरामीटरयुक्त तैयार कथनों के बजाय सीधे स्ट्रिंग जोड़कर क्वेरी बनाता है।
डेटाबेस पार्सर इंजेक्ट किए गए कैरेक्टर को डेटा के बजाय SQL कमांड के रूप में समझता है।
हेरफेर की गई क्वेरी डेटाबेस अनुमतियों के साथ चलती है, प्रमाणीकरण को दरकिनार कर डेटाबेस खाली करती है।
# params[:id] straight into the string
User.where(
"id = #{params[:id]}"
)
# value bound, never interpolated
User.where(
"id = ?", params[:id]
)
# or, more idiomatic still:
User.where(id: params[:id])
order() or dynamic SQL fragments।