दिलचस्प पोस्ट
मैं एक विशेष पथ के साथ एक वस्तु के एनीमेशन करना चाहता हूं # 1071 – निर्दिष्ट कुंजी बहुत लंबी थी; अधिकतम कुंजी लंबाई 1000 बाइट्स है हेरोकी पर 4 चित्रों को लोड नहीं किया जा रहा है एंड्रॉइड फाइल चयनकर्ता पायथन में पृष्ठभूमि प्रक्रिया कैसे आरंभ करें? एंड्रॉइड में अंडाकार का क्या अर्थ है? JQuery के साथ ट्रिगर कीपेज ".equals" और "==" के बीच अंतर क्या है? IPhone में स्थितिबार पर दृश्य जोड़ना अपाचे स्थानीयहोस्ट / ~ उपयोगकर्ता नाम / काम नहीं कर रहा है Regex के साथ केवल कुछ समूह बदलें अजैक्स पोस्ट अनुरोध के साथ असफल रहने के लिए Django CSRF की जांच एजेक्स पोस्ट की जेक्जरी जांच की सफलता डोज मोड एंड्रॉइड 6.0 में श्वेतसूची ऐप कैसे करें क्लाइंट साइड पर जावास्क्रिप्ट में JPEG EXIF ​​रोटेशन डेटा एक्सेस करना

क्लासिक एएसपी एसक्यूएल इंजेक्शन प्रोटेक्शन

क्लासिक एएसपी एप के लिए एसक्वल इंजेक्शन से बचाव करने का एक मजबूत तरीका क्या है?

एफवाईआई मैं इसे एक्सेस डीबी के साथ प्रयोग कर रहा हूं। (मैं ऐप लिखने नहीं किया)

वेब के समाधान से एकत्रित समाधान "क्लासिक एएसपी एसक्यूएल इंजेक्शन प्रोटेक्शन"

संग्रहित प्रक्रियाएं और / या तैयार बयान:

https://stackoverflow.com/questions/1973/what-is-the-best-way-to-avoid-sql-injection-attacks

क्या मैं सिंगल-उद्धरण के साथ सिंगल-कोट और आसपास के उपयोगकर्ता इनपुट से बचकर एसक्यूएल इंजेक्शन से बचा सकता हूं?

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

एक्सेस डीबी के साथ, आप अभी भी ऐसा कर सकते हैं, लेकिन अगर आप पहले से ही एसक्यूएल इंजेक्शन के बारे में चिंतित हैं, तो मुझे लगता है कि आपको वैसे भी पहुंच प्राप्त करने की आवश्यकता है।

यहां पहुंच में तकनीक का एक लिंक है:

http://www.asp101.com/samples/storedqueries.asp

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

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

Conn.Execute("EXEC usp_ImOnlySafeIfYouCallMeRight '" + param1 + "', '" + param2 + "'") ; 

याद रखें कि आपके डेटाबेस को अपनी खुद की परिधि की रक्षा करने की आवश्यकता है, और यदि विभिन्न लॉगिनों को INSERT/UPDATE/DELETE करने के अधिकार हैं, तो उन अनुप्रयोगों (या समझौता किए गए एप्लिकेशन) में कोई भी कोड एक संभावित समस्या हो सकता है। यदि लॉग इन में केवल संग्रहीत कार्यविधियों को निष्पादित करने के अधिकार हैं, तो यह एक फ़नल बनाता है जिसके द्वारा आप सही व्यवहार को और अधिक आसानी से सुनिश्चित कर सकते हैं। (ओ ओ अवधारणाओं के समान है जहां ऑब्जेक्ट अपने इंटरफेस के लिए ज़िम्मेदार हैं और अपने सभी आंतरिक कामकाज का पर्दाफाश नहीं करते हैं।)

यहाँ कुछ स्क्लिजेन स्क्रिप्ट हैं जो मैंने बहुत पहले एक सरल संस्करण और विस्तारित संस्करण बनाया था:

 function SQLInject(strWords) dim badChars, newChars, i badChars = array("select", "drop", ";", "--", "insert", "delete", "xp_") newChars = strWords for i = 0 to uBound(badChars) newChars = replace(newChars, badChars(i), "") next newChars = newChars newChars= replace(newChars, "'", "''") newChars= replace(newChars, " ", "") newChars= replace(newChars, "'", "|") newChars= replace(newChars, "|", "''") newChars= replace(newChars, "\""", "|") newChars= replace(newChars, "|", "''") SQLInject=newChars end function function SQLInject2(strWords) dim badChars, newChars, tmpChars, regEx, i badChars = array( _ "select(.*)(from|with|by){1}", "insert(.*)(into|values){1}", "update(.*)set", "delete(.*)(from|with){1}", _ "drop(.*)(from|aggre|role|assem|key|cert|cont|credential|data|endpoint|event|f ulltext|function|index|login|type|schema|procedure|que|remote|role|route|sign| stat|syno|table|trigger|user|view|xml){1}", _ "alter(.*)(application|assem|key|author|cert|credential|data|endpoint|fulltext |function|index|login|type|schema|procedure|que|remote|role|route|serv|table|u ser|view|xml){1}", _ "xp_", "sp_", "restore\s", "grant\s", "revoke\s", _ "dbcc", "dump", "use\s", "set\s", "truncate\s", "backup\s", _ "load\s", "save\s", "shutdown", "cast(.*)\(", "convert(.*)\(", "execute\s", _ "updatetext", "writetext", "reconfigure", _ "/\*", "\*/", ";", "\-\-", "\[", "\]", "char(.*)\(", "nchar(.*)\(") newChars = strWords for i = 0 to uBound(badChars) Set regEx = New RegExp regEx.Pattern = badChars(i) regEx.IgnoreCase = True regEx.Global = True newChars = regEx.Replace(newChars, "") Set regEx = nothing next newChars = replace(newChars, "'", "''") SqlInject2 = newChars end function 

"क्लासिक एएसपी एप के लिए एसक्वल इंजेक्शन से बचाव करने का एक मजबूत तरीका" सभी इनपुट को क्रूर रूप से मान्य करना है अवधि।

संग्रहित प्रक्रियाएं अकेले और / या एक अलग डेटाबेस सिस्टम जरूरी समान सुरक्षा के समान नहीं है

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

यहां लिंक है: एसक्यूएल इंजेक्शन टूल के लिए माइक्रोसॉफ्ट सोर्स कोड एनालाइज़र एएसपी कोड में एसक्यूएल इंजेक्शन कमजोरियों को खोजने के लिए उपलब्ध है।

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

http://prepared-statement.blogspot.com/2006/02/asp-prepared-statements.html

और संग्रहीत कार्यविधियों पर भरोसा नहीं करते हैं, यदि आप तैयार बयान का उपयोग नहीं करते हैं, तो वे हमला वेक्टर भी बन सकते हैं

अगर संग्रहीत कार्यविधियाँ एक विकल्प नहीं हैं – और भले ही वे हों – सभी इनपुट को अच्छी तरह से मान्य करें

एसक्यूएल इंजेक्शन उपकरण के लिए माइक्रोसॉफ्ट सोर्स कोड विश्लेषक एएसपी कोड में एसक्यूएल इंजेक्शन कमजोरियों को खोजने के लिए उपलब्ध है

अरे, डेवलपर के रूप में अच्छी तरह से कोई डेटाबेस जो इसका उपयोग करता है

अधिक कुछ नहीं है लेकिन कुछ भी कम नहीं है

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

और अगर आप अच्छे डेवलपर हैं तो आप अपने एएसपी पेजों में इनलाइन एसक्यूएल स्टेटमेंट का उपयोग नहीं करेंगे। एक्सेस में भी आपके पास क्वेरी बनाने और उपयोग करने का विकल्प है ..

एचटीएमएल एन्कोड के साथ-साथ डेटा सत्यापन के साथ स्टोर प्रोसेस – किसी भी एसक्यूएल इंजेक्शन के हमलों को रोकने का सबसे अच्छा तरीका है।

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

संख्याओं जैसे मूल्यों के लिए यह सत्यापित करने के लिए संख्या निकालने में काफी आसान है कि यह वास्तव में केवल एक संख्या है एसक्यूएल के लिए सभी विशेष अक्षर बचें ऐसा करने से प्रयास किए गए हमले को काम से रोक दिया जाएगा।