एसक्यूएल इंजेक्शन को रोकने के लिए रूबी में एक अच्छी विधि क्या है?एसक्यूएल इंजेक्शन/गुड रूबी विधि को रोकना
उत्तर
माणिक? तैयार बयान का उपयोग करें:
require 'mysql'
db = Mysql.new('localhost', 'user', 'password', 'database')
statement = db.prepare "SELECT * FROM table WHERE field = ?"
statement.execute 'value'
statement.fetch
statement.close
इसके साथ मेरी समस्या यह है कि यह किसी क्षेत्र या किसी और अधिक प्रबंधनीय के विपरीत परिणाम की एक श्रृंखला देता है ..... – Zombies
यह सिर्फ एक उदाहरण है कि एक चयनित क्वेरी के लिए तैयार कथन का उपयोग कैसे करें। आप परिणामों के साथ क्या करते हैं आप पर निर्भर है। –
न केवल रूबी में - अपने पैरामीटर को बांधें (डेटाबेस में या अपने क्लाइंट कोड में)।
गाइड वे इस पर है की जाँच करें: http://guides.rubyonrails.org/security.html#injection
मूल रूप से, आप अपने मॉडल में बाँध चर का उपयोग करने के लिए डेटा के बजाय इनलाइन मापदंडों लगाना चाहते हैं ..
Model.find(:first, :conditions => ["login = ? AND password = ?", entered_user_name, entered_password])
हाँ, यह अच्छा लग रहा है। जावा में मुझे बहुत कुछ उपयोग किया जाता है, धन्यवाद। – Zombies
आपको कम से कम उल्लेख करना चाहिए कि आप सक्रिय रिकॉर्ड के बारे में बात कर रहे हैं। – sepp2k
मैं इस पर टिप्पणी करने वाला था .. मेरे जल्दबाजी में, मैं यह पढ़ना भूल गया कि यह विशेष रूप से रेल/एक्टिव रिकार्ड के लिए नहीं था .. इसके बारे में खेद है! –
http://ruby.railstutorial.org/ के अनुसार आप अनुप्रयोग/विचारों/लेआउट/application.html.erb के शीर्षक में
<%= csrf_meta_tags %>
टैग डालने से क्रॉस साइट रिक्वेस्ट फोर्जरी रोका जा सकता है।
वेब ढांचे के साथ काम करने वालों के लिए अच्छा विचार, लेकिन एसक्यूएल इंजेक्शन! = एक्सएसएस – Zombies
यह धागा संदर्भ:
http://www.ruby-forum.com/topic/90258#new
http://www.ruby-forum.com/topic/82349#143790
ActiveRecord की ढूंढें() विधि द्वारा तरीके एसक्यूएल इंजेक्शन से बचने के लिए बनाया गया है प्रारूप
का उपयोग करक्या इंजेक्शन से बचने के लिए ऐसी कोई व्यवस्था है? ऐसा लगता है कि केवल एक स्ट्रिंग लेता है और इसे SQL कथन में फ़ीड करता है। इस समारोह में के रूप में आदेश:: यह जब पैरामीटर का उपयोग कर स्थापित करने के लिए एक जोखिम का कारण बनता है [ '?', sort_by]
def list
sort_by = params[:sort_by]
@book_pages, @books = paginate :books,
:order => sort_by,
:per_page => 10
end
हम के रूप में आदेश => लेकिन यह इस तरह के sort_by को साफ़ करने में कुछ तरीकों की कोशिश की है बस एसक्यूएल स्टेटमेंट को एक flattened सरणी की तरह गुजरता है। 'बच निकलने वाला जादू' आदेश के लिए काम नहीं करता है। क्या मुझे gsub का उपयोग करना चाहिए! पैराम्स को स्वच्छ करने के लिए [: sort_by]?
- 1. रूबी थ्रेड को शुरू करना और रोकना
- 2. एक वितरित रूबी सेवा को रोकना
- 3. इबैटिस में एसक्यूएल इंजेक्शन को रोकना
- 4. रूबी विधि अवरोध
- 5. रूबी विधि को समझना #call
- 6. थ्रेड को रोकना/रोकना क्यों बुरा है?
- 7. मिलीसेकंड के सेट # के लिए एक विधि को रोकना
- 8. विंडोज़ को रोकना
- 9. एक्सएसएस हमलों को रोकना
- 10. स्थानीय पॉइंटर्स को रोकना
- 11. एलडीएपी इंजेक्शन को रोकना
- 12. एक प्रक्रिया को रोकना?
- 13. रूबी बाहरी एसक्यूएल मॉड्यूल
- 14. रूबी के .send() विधि
- 15. रूबी ऐरे सीमा विधि
- 16. रूबी विधि-कॉलिंग पदानुक्रम
- 17. [] रूबी स्ट्रिंग की विधि
- 18. रूबी सिस्टम विधि तर्क
- 19. रूबी पता विधि
- 20. रूबी: अपरिभाषित विधि `> '
- 21. रूबी विधि जो खुद को लौटती है
- 22. रूबी मॉड्यूल विधि पहुंच
- 23. Magento अनुक्रमण प्रक्रिया को रोकना
- 24. डुप्लिकेट फॉर्म सबमिशन को रोकना
- 25. मल्टीप्रोसेसिंग "रनवे बग" को रोकना
- 26. स्क्रॉलिंग से UITableView को रोकना?
- 27. सभी जावास्क्रिप्ट निष्पादन को रोकना
- 28. अमेज़ॅन क्लाउडफ़्रंट हॉटलिंकिंग को रोकना
- 29. एक बहु थ्रेडेड विंडोज सेवा को रोकना
- 30. रेल पर रूबी - स्टेटिक विधि
किस पुस्तकालय का उपयोग कर? – sepp2k
ओह कोई भी, मैं जो भी सिफारिश करता हूं उसे पकड़ लेगा। – Zombies
मैं डाउनवॉटिंग पर थोड़ा आश्चर्यचकित हूं, लेकिन अगर आपने यह बताया कि आप वेब फ्रेमवर्क का उपयोग कर रहे हैं या सादे पुराने रूबी ऑब्जेक्ट्स का उपयोग कर रहे हैं तो इससे मदद मिली होगी। –