/ / रेल इंजेक्शन में SQL इंजेक्शन से बचाव - sql, रूबी-ऑन-रेल्स -3, सुरक्षा

रेल में एसक्यूएल इंजेक्शन के खिलाफ सुरक्षा - एसक्यूएल, रूबी-ऑन-रेल-3, सुरक्षा

मैं रेल में कुछ रिकॉर्ड्स को सॉर्ट करने की कोशिश कर रहा हूं और मैं कुछ इस तरह से गुजर रहा हूं created_at DESC परम के रूप में, और सोच रहा था - क्या SQL सक्रिय रूप से ActiveRecord द्वारा बच गया है, या यह करने का एक बुरा तरीका है? मैं के साथ प्रतिस्थापित करने की कोशिश की ? जैसे मैं आम तौर पर स्ट्रिंग्स के साथ करता हूं, लेकिन यद्यपि मैं इसे SQLite में काम करने के लिए प्राप्त कर सकता था, पीजी ने एक त्रुटि फेंक दी।

यहाँ है कि मैं क्या काम कर रहा हूँ - लेकिन सोच रहा था कि यह सुरक्षित है?

if params[:by]
@photos = Photo.find(:all, :order => params[:by])
else
...

उत्तर:

जवाब के लिए 2 № 1

यदि आप सक्रिय रिकॉर्ड क्वेरी इंटरफ़ेस का उपयोग करते हैं जैसे आपने ऊपर किया था, तो रेल एसक्यूएल सैनिटाइजेशन करेंगे। देख http://guides.rubyonrails.org/active_record_querying.html