2010-10-25 15 views
12

मेरे पास एक एएसपी.नेट वेब फॉर्म एप्लिकेशन है। टेक्स्टबॉक्स के साथ एक पृष्ठ है और उपयोगकर्ता इन शब्दों में खोज शब्द दर्ज करते हैं जिनका उपयोग डेटाबेस से पूछताछ के लिए किया जाता है।एचटीएमएल कैसे करें। वेबफॉर्म में एन्कोड

मुझे पता है कि मुझे जावास्क्रिप्ट इंजेक्शन हमलों को रोकने की आवश्यकता है। मैं यह कैसे करु?

एमवीसी में मैं Html.Encode का उपयोग करूंगा। ऐसा लगता है कि वेब फॉर्म में पहचाना नहीं जा रहा है।

धन्यवाद!

उत्तर

3

आप (जो HttpServerUtility.HtmlEncode करने के लिए अनुवाद) Server.HtmlEncode उपयोग कर सकते हैं, लेकिन माइक्रोसॉफ्ट कि आप CodePlex से डाउनलोड कर सकते हैं AntiXSS कहा जाता है एक बेहतर वेब सुरक्षा पुस्तकालय है। इसमें एक उपयोगिता शामिल है जो HtmlEncoding (अधिक सुरक्षित और बेहतर, और recommended by OWASP पर एक सफेद-सूची दृष्टिकोण का उपयोग करती है हालांकि वे older version पर इंगित करते हैं)। इसमें ऐसे टूल्स भी हैं जो आपको सुरक्षित HTML टुकड़े आदि प्राप्त करने की अनुमति देते हैं।

यदि आप कुछ और नहीं देखते हैं, तो OWASP top 10 पर एक नज़र डालें। ऐसा लगता है कि आप वेब ऐप सुरक्षा की सतह को खरोंच कर रहे हैं, और यह वहां का सबसे अच्छा संसाधन है। क्रॉस-साइट स्क्रिप्टिंग हमले केवल उन चीजों में से एक हैं जिनकी आपको रक्षा करने की आवश्यकता है।

यह भी एक आप आप अनुपालन (पीसीआई, लाल झंडा, आदि) किसी भी प्रकार से निपटने के लिए है, तो के अनुरूप

+0

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

+0

अगर आप डाउनवॉटिंग कर रहे हैं तो कृपया टिप्पणी करें ताकि मैं अपनी गलतियों से सीख सकूं ... – David

+0

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

4

उपयोग कर सकते हैं webforms पर आप

कॉल कर सकते हैं की आवश्यकता होगी है
HttpUtility.HtmlEncode(foo); 

डबल एन्कोड न करने के लिए सावधान रहें।

+0

+1 'डबल एन्कोड न करने के लिए सावधान' के लिए +1। पहला एन्कोड => [< परीक्षण >], दूसरा एन्कोड => [& लेफ्टिनेंट; परीक्षण & gt;] – Stacked

3

आप ASP.NET 4 या नए पर हैं, तो आप इस वाक्य विन्यास का उपयोग कर सकते हैं:

<%: Model.Username %> 

कौन सा होगा एचटीएमएल एन्कोड अभिव्यक्ति। Scott Gu explains the benefit of this syntax:

हम चुना है <%:%> वाक्य रचना इतना है कि यह जल्दी से <% =%> कोड ब्लॉक के मौजूदा उदाहरणों को बदलने के लिए आसान होगा। यह आपको <% =%> तत्वों के लिए आसानी से अपने कोड-बेस को खोजने में सक्षम बनाता है, जहां आप अपने व्यवहार के भीतर HTML एन्कोडिंग का उपयोग नहीं कर रहे हैं, यह सुनिश्चित करने के लिए कि आपके पास सही व्यवहार है या नहीं।

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