एसक्यूएल इंजेक्शन और अन्य दुर्भावनापूर्ण वेब अनुरोधों को पकड़ना

मैं ऐसे टूल की तलाश में हूं जो दुर्भावनापूर्ण अनुरोधों (जैसे स्पष्ट एसक्यूएल इंजेक्शन हो या पोस्ट) का पता लगा सके और तुरंत अनुरोधकर्ता के आईपी पते / ब्लैकलिस्ट में जोड़ देगा। मुझे पता है कि एक आदर्श दुनिया में हमारा कोड ऐसे अनुरोधों को संभालने में सक्षम होना चाहिए और तदनुसार उनका इलाज करना चाहिए, लेकिन इस तरह के उपकरण में बहुत मूल्य है, भले ही साइट इन प्रकार के हमलों से सुरक्षित हो, क्योंकि इससे इसका कारण बन सकता है बैंडविड्थ की बचत, एनालिटिक्स के ब्लोट को रोकना आदि।

आदर्श रूप से, मैं एक क्रॉस-प्लेटफ़ॉर्म ( LAMP / .NET ) समाधान ढूंढ रहा हूं जो तकनीकी ढेर की तुलना में उच्च स्तर पर बैठता है; शायद वेब सर्वर या हार्डवेयर स्तर पर। मुझे यकीन नहीं है कि यह मौजूद है, यद्यपि।

किसी भी तरह से, मैं समुदाय की प्रतिक्रिया सुनना चाहता हूं ताकि मैं देख सकूं कि कार्यान्वयन और दृष्टिकोण के संबंध में मेरे विकल्प क्या हो सकते हैं।

0
जोड़ा संपादित
विचारों: 1
कृपया सबसे अच्छा जवाब का चयन करें, धन्यवाद।
जोड़ा लेखक mruanova, स्रोत

8 उत्तर

एक सामान्य उपकरण के साथ समस्या यह है कि नियमों के एक सेट के साथ आना बहुत मुश्किल है जो केवल वास्तविक हमले के खिलाफ मेल खाता है।

एसक्यूएल कीवर्ड सभी अंग्रेजी शब्द हैं, और स्ट्रिंग को मत भूलना

 DROP TABLE users;

एक फॉर्म फ़ील्ड में पूरी तरह मान्य है, उदाहरण के लिए, प्रोग्रामिंग प्रश्न का उत्तर होता है।

एकमात्र समझदार विकल्प यह है कि इसे कभी भी अपने डेटाबेस में पास करने से पहले इनपुट को स्वच्छ करना है, लेकिन फिर भी इसे पास करें। अन्यथा पूरी तरह से सामान्य, गैर-दुर्भावनापूर्ण उपयोगकर्ताओं को आपकी साइट से प्रतिबंधित होने जा रहे हैं।

0
जोड़ा

ध्यान में रखने के लिए एक छोटी सी बात: कुछ देशों में (यानी यूरोप का अधिकांश), लोगों के पास स्थिर आईपी पते नहीं हैं, इसलिए ब्लैकलिस्टिंग हमेशा के लिए नहीं होनी चाहिए।

0
जोड़ा

एक विधि जो कुछ मामलों के लिए काम कर सकती है, वह एसक्यूएल स्ट्रिंग लेना होगा जो कि यदि आप नैतिक रूप से फॉर्म डेटा का उपयोग करते हैं और उसे उस कोड को पास करते हैं जो वास्तव में निष्पादित किए गए बयानों की संख्या की गणना करता है। यदि यह अपेक्षित संख्या से अधिक है, तो एक सभ्य मौका है कि एक इंजेक्शन का प्रयास किया गया था, खासतौर से उन क्षेत्रों के लिए जिन्हें उपयोगकर्ता नाम जैसे नियंत्रण वर्ण शामिल करने की संभावना नहीं है।

एक सामान्य टेक्स्ट बॉक्स की तरह कुछ कठिन होगा क्योंकि इस विधि को झूठी सकारात्मक वापसी की संभावना अधिक होगी, लेकिन कम से कम यह एक शुरुआत होगी।

0
जोड़ा

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

0
जोड़ा

ओरेकल को एक SQL इंजेक्शन के बारे में ऑनलाइन ट्यूटोरियल मिला है। भले ही आप एक तैयार समाधान चाहते हैं, यह आपको अपने आप को बचाने के लिए बेहतर तरीके से इसका उपयोग करने के बारे में कुछ संकेत दे सकता है।

0
जोड़ा

दिलचस्प है कि यह कई वर्षों बाद Google द्वारा लागू किया जा रहा है और एक्सएसएस हमलों और अन्य दुर्भावनापूर्ण एसिटिवेट्स को रोकने के लिए उन्हें एक साथ यूआरएल को हटाया जा रहा है

0
जोड़ा

आप इसे लगभग गलत तरीके से देख रहे हैं, कोई 3party टूल जो आपके एप्लिकेशन विधियों / नामकरण / डेटा / डोमेन से अवगत नहीं है, वह पूरी तरह से आपकी रक्षा करने में सक्षम होने जा रहा है।

एसक्यूएल इंजेक्शन रोकथाम की तरह कुछ ऐसा है जो कोड में होना चाहिए, और एसक्यूएल लिखने वाले लोगों द्वारा सबसे अच्छा लिखा गया है, क्योंकि वे हैं जो जानते होंगे कि उन क्षेत्रों में क्या होना चाहिए / नहीं (जब तक कि आपके प्रोजेक्ट में बहुत अच्छे दस्तावेज़ नहीं हैं )

आपका अधिकार, यह सब पहले किया गया है। आपको पहिया को फिर से शुरू करने की ज़रूरत नहीं है, लेकिन आपको हर किसी के धुरी व्यास में मतभेदों के कारण एक नया बनाना होगा।

यह एक ड्रॉप-इन और रन समस्या नहीं है, आपको वास्तव में यह पता होना चाहिए कि एसक्यूएल इंजेक्शन वास्तव में क्या रोक सकता है इससे पहले कि आप इसे रोक सकें। यह एक चुस्त समस्या है, इसलिए यह समान रूप से चुस्त सुरक्षा लेता है।

इन 2 लिंक ने मुझे विषय पर मूल बातें शुरू करने के लिए बहुत कुछ सिखाया, और मुझे उन सवालों के बारे में बेहतर वाक्यांशों में मदद मिली जिनके उत्तर नहीं दिए गए थे।

और जब यह एक 100% खोजक नहीं है, तो यह आपके मौजूदा कोड में मौजूदा समस्या पर "आपको प्रकाश दिखाएगा", लेकिन वेब मानक के साथ, इस परीक्षा को पार करने के बाद कोडिंग रोकना न करें।

0
जोड़ा

One of my sites was recently hacked through SQL Injection. It added a link to a virus for every text field in the db! The fix was to add some code looking for SQL keywords. Fortunately, I've developed in ColdFiusion, so the code sits in my Application.cfm file which is run at the beginning of every webpage & it looks at all the URL variables. Wikipedia has some good links to help too.

0
जोड़ा