Flask Academy · पाठ

इंजेक्शन रोकने के लिए इनपुट मान्य करें

दुर्भावनापूर्ण पेलोड को प्रवेश-बिंदु पर अस्वीकार करें

पाठ 4, कुल 4 में से13 चरण

इंजेक्शन रोकने के लिए इनपुट मान्य करें, CoddyKit पर Flask Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Flask Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Flask Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

इनपुट पर कभी भरोसा न करें

क्लाइंट द्वारा भेजी गई हर वैल्यू हानिकारक हो सकती है। सभी इनपुट को अविश्वसनीय मानना वह दृष्टिकोण है जो अधिकांश हमलों को रोकता है।

इंजेक्शन का अर्थ

इंजेक्शन तब होता है जब उपयोगकर्ता के इनपुट को कोड या कमांड समझ लिया जाता है। हमलावर किसी क्वेरी या शेल में निर्देश छिपा देता है।

एक पंक्ति में SQL इंजेक्शन

इनपुट को सीधे SQL में चिपकाना सामान्य गलती है। किसी विशेष रूप से बनाए गए मान से आपकी क्वेरी बदली जा सकती है और पूरी तालिका निकाली जा सकती है।

db.execute("SELECT * FROM users WHERE name = '" + name + "'")

पैरामीटर वाली क्वेरी का उपयोग करें

समाधान यह है कि मानों को पैरामीटर के रूप में भेजें, स्ट्रिंग जोड़कर नहीं। ड्राइवर आपके लिए उन्हें सुरक्षित रूप से एस्केप कर देता है।

db.execute("SELECT * FROM users WHERE name = ?", (name,))

ORM सहायता करता है

SQLAlchemy के साथ आप filter_by और बंधे हुए मानों का उपयोग करते हैं, इसलिए क्वेरी डिफ़ॉल्ट रूप से पैरामीटरयुक्त होती हैं और इंजेक्शन बहुत कठिन हो जाता है।

User.query.filter_by(name=name).first()

आकार और प्रकार की जाँच करें

उपयोग करने से पहले जाँचें कि इनपुट आपकी अपेक्षा के अनुरूप है। प्रकार और सीमा की पुष्टि करें, ताकि जहाँ संख्या चाहिए वहाँ स्ट्रिंग न आ जाए।

age = request.args.get("age", type=int)

अस्वीकार-सूची के बजाय अनुमति-सूची

हर गलत मान का पीछा करने के बजाय स्वीकार किए जाने वाले कुछ मानों की सूची बनाना बेहतर है। अनुमति-सूची उन सभी चीज़ों को अस्वीकार करती है जिन्हें आपने स्पष्ट रूप से अनुमति नहीं दी।

स्कीमा से सत्यापन करें

Marshmallow जैसी स्कीमा लाइब्रेरी फ़ील्ड की जाँच आपके लिए करती है। जब पेलोड का आकार गलत होता है, तो यह ValidationError उत्पन्न करती है।

data = UserSchema().load(request.get_json())

XSS के लिए आउटपुट एस्केप करें

इंजेक्शन HTML में भी पहुँच सकता है। Jinja2 का autoescaping उपयोगकर्ता के पाठ को सुरक्षित वर्णों में बदल देता है, ताकि पृष्ठ पर स्क्रिप्ट न चल सकें।

safe फ़िल्टर से सावधान रहें

सामग्री को safe फ़िल्टर से चिह्नित करने पर एस्केपिंग बंद हो जाती है। ऐसा केवल उस पाठ के लिए करें जिस पर आपको पूरा भरोसा हो, कच्चे उपयोगकर्ता इनपुट के लिए कभी नहीं।

किनारे पर तुरंत अस्वीकार करें

डेटा आते ही, आपके तर्क तक पहुँचने से पहले उसका सत्यापन करें। 400 के साथ fast विफलता खराब इनपुट को फैलने से रोकती है।

त्वरित जाँच

SQL इंजेक्शन रोकने वाली तकनीक चुनें।

पुनरावलोकन

आपने इनपुट पर अविश्वास करना, पैरामीटरयुक्त क्वेरी से SQL इंजेक्शन रोकना, स्कीमा से सत्यापन करना, मानों के लिए अनुमति-सूची बनाना और आउटपुट एस्केप करना सीखा। सुरक्षा का ठोस काम!

शुरुआत निःशुल्क

एआई शिक्षक के साथ Python सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
30
पाठ
120

अक्सर पूछे जाने वाले प्रश्न

क्या “इंजेक्शन रोकने के लिए इनपुट मान्य करें” पाठ निःशुल्क है?

हाँ—“इंजेक्शन रोकने के लिए इनपुट मान्य करें” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Flask Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Flask Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“इंजेक्शन रोकने के लिए इनपुट मान्य करें” में मैं क्या सीखूँगा?

दुर्भावनापूर्ण पेलोड को प्रवेश-बिंदु पर अस्वीकार करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Flask Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Flask Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Flask Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“इंजेक्शन रोकने के लिए इनपुट मान्य करें” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Flask Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Flask Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Flask-Limiter से अनुरोध सीमित करें
  2. ब्राउज़र क्लाइंट के लिए CORS कॉन्फ़िगर करें
  3. सुरक्षा हेडर और HTTPS
  4. इंजेक्शन रोकने के लिए इनपुट मान्य करें
← Flask Academy पर वापस जाएँ