में एसक्यूएल इंजेक्शन के खिलाफ सुरक्षा मेरे पास पाइथन में कुछ कोड है जो एक एसक्लाइट डीबी में एक char (80) मान सेट करता है।पायथन
स्ट्रिंग सीधे उपयोगकर्ता से टेक्स्ट इनपुट फ़ील्ड के माध्यम से प्राप्त की जाती है और JSON संरचना में POST विधि के साथ सर्वर पर वापस भेज दी जाती है।
सर्वर की तरफ मैं वर्तमान में एसक्यूएल अद्यतन ऑपरेशन को कॉल करने वाली विधि को स्ट्रिंग पास करता हूं।
यह काम करता है, लेकिन मुझे पता है कि यह बिल्कुल सुरक्षित नहीं है।
मुझे उम्मीद है कि क्लाइंट पक्ष असुरक्षित है, इसलिए किसी भी सुरक्षा को सर्वर की तरफ रखा जाना है। अद्यतन ऑपरेशन को फिर से एसक्यूएल इंजेक्शन को सुरक्षित करने के लिए मैं क्या कर सकता हूं?
एक ऐसा फ़ंक्शन जो पाठ को "उद्धृत" करेगा ताकि वह SQL पार्सर को भ्रमित नहीं कर सके जो मैं ढूंढ रहा हूं। मुझे उम्मीद है कि इस तरह का कार्य मौजूद है लेकिन इसे नहीं मिला।
संपादित करें: यहाँ मेरे वर्तमान कोड चार फ़ील्ड नाम लेबल स्थापित कर रही है:
def setLabel(self, userId, refId, label):
self._db.cursor().execute("""
UPDATE items SET label = ? WHERE userId IS ? AND refId IS ?""", (label, userId, refId))
self._db.commit()
अजगर समर्थन पैरामिट्रीकृत प्रश्नों करता है नहीं? –
@ जेरेमी। हाँ ... लेकिन यह वास्तव में है कि किसी विशेष डेटाबेस के लिए पायथन लाइब्रेरी इसका समर्थन करती है (जो वे सभी AFAIK करते हैं)। – Gerrat
हां। तो मेरे प्रश्न पर विचार करें क्योंकि मैं यह पूछता हूं कि एसक्यूएल इंजेक्शन के खिलाफ सुरक्षा सुनिश्चित करने के लिए मैं क्या कर रहा हूं। – chmike