2010-12-29 15 views
9

क्या कोई ईमेल पता या यूआरएल प्रारूप को सत्यापित करने के लिए IsValid() का उपयोग कर रहा है? क्या यह अन्य प्रारूपों को निर्दिष्ट करते समय एक्सएसएस को अस्वीकार करता है?क्या IsValid() XSS से रक्षा करता है?

उत्तर

10

एक मान्य URL अभी भी एक हमले वेक्टर हो सकते हैं:

<!--- No on CF9 ---> 
<cfoutput>#isValid("url", "http://www.mydomain.com/products/products.asp?productid=123; DROP TABLE Products")#</cfoutput> 

<!--- Yes on CF9: hex encoded ';DROP TABLE Products' ---> 
<cfoutput>#isValid("url", "http://www.mydomain.com/products/products.asp?productid=123%3B%20%44%52%4F%50%20%54%41%42%4C%45%20%50%72%6F%64%75%63%74%73")#</cfoutput> 

ऊपर दी एक XSS हमला नहीं है, लेकिन यह बजाय एक हमले के साथ कॉलम अद्यतन करने के लिए बदला जा सकता है।

ईमेल सत्यापन the attacks I could find को रोकने के लिए प्रतीत होता है। खेतों जिसका केवल datatype दर असल 'स्ट्रिंग' है के खिलाफ पूर्णांकों, SSNs, UUIDs, आदि .. हालांकि, there's a laundry list of documented potential attacks -

के रूप में सामान्यीकरण, isValid() XSS हमलों को रोकने जब डेटाप्रकार परिमित है मदद करता है। उस स्थिति में, isValid() कोई मदद नहीं है, बल्कि OWASP's AntiSamy इस उद्देश्य के लिए एक उपयोगी उपकरण है जो DOM को पार करता है और श्वेतसूची वाले किसी भी चीज़ को हटा देता है।

Best regex to catch XSS (Cross-site Scripting) attack (in Java)? एक्सएसएस रोकथाम के सामान्य विषय पर बहुत उपयोगी जानकारी प्रदान करता है।

और अंत बिंदु, उपयोग बुरी तरह पीटना करने के लिए:

<cfqueryparam cfsqltype="..." value="..."> 

to protect queries

अद्यतन

अंतिम, लेकिन कम से कम, OWASP XSS Cheat Sheet: बाहर वहाँ इनपुट प्रसंस्करण XSS को रोकने के लिए के लिए heuristics का सबसे अच्छा सेट।

संबंधित मुद्दे