2010-09-02 11 views
5

मेरे पास एएसपी.नेट वेब फॉर्म में कई टेक्स्ट बॉक्स हैं। मैं यह सुनिश्चित करना चाहता हूं कि उपयोगकर्ता उन टेक्स्ट बॉक्स में HTML दर्ज कर रहे हैं। हालांकि, मुझे यकीन नहीं है कि एचटीएमएल को प्रवेश करने से कैसे रोकें। इस वजह से, मैंने फैसला किया कि मैं केवल अल्फान्यूमेरिक वर्ण, रिक्त स्थान, विस्मयादिबोधक बिंदु, तेज संकेत, डॉलर संकेत, प्रतिशत संकेत, देखभाल, सितारों, और बाएं और दाएं कोष्ठक की अनुमति देना चाहता हूं। मैं एम्पर्सेंड को छोड़ रहा हूं क्योंकि मैं नहीं चाहता हूं कि वे "< स्क्रिप्ट &rt; ..."एएसपी.NET वेब फॉर्म टेक्स्ट बॉक्स में एचटीएमएल की प्रविष्टि को कैसे रोकें

मैं यह कैसे कर सकता हूं? क्या मैं इसे सही तरीके से कर रहा हूं?

धन्यवाद!

+0

जो भी तरीका आप चुनते हैं, सुनिश्चित करें कि आप क्लाइंट और सर्वर दोनों पर अपना इनपुट मान्य करते हैं - क्लाइंट सत्यापन को आसानी से जावास्क्रिप्ट डीबगर से हटाया जा सकता है। –

उत्तर

1

आप वेब config ValidateRequest = true सभी उपयोगकर्ता इनपुट की जाँच करें और एक उपयोगकर्ता बुरा पात्रों के साथ कुछ सम्मिलित करता है, तो एक त्रुटि फेंक होगा में एक कंबल बयान डाल सकते हैं यहाँ http://msdn.microsoft.com/en-us/library/ff649310.aspx

एक नज़र डालें।

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

+0

+1 यह अंतर्निहित है ... (कोर्स की त्रुटि को संभालें)। –

+0

-1: मुझे विश्वास नहीं है कि उपयोगकर्ताओं को फेंकने वाली त्रुटियों/अपवादों का एक अच्छा अभ्यास है। और ValidateRequest = सत्य XSS रोकथाम के सभी रूपों को कवर नहीं करता है, अगर यह इरादा है। –

+0

@ कैस्पर क्लेजेन क्या आप ValidateRequest के कुछ संदर्भ प्रदान कर सकते हैं जो एक्सएसएस के सभी रूपों को कवर नहीं करते हैं? मैं इसके बारे में पढ़ने के लिए उत्सुक हूँ। मुझे लगा कि माइक्रोसॉफ्ट खतरनाक उपयोगकर्ता इनपुट के सभी मामलों को बेहतर तरीके से पकड़ने के लिए बेहतर काम करेगा, या औसत डेवलपर अपने आप को रोल कर सकता है। –

1

पृष्ठ डिफ़ॉल्ट रूप से, उपयोगकर्ताओं को टेक्स्टबॉक्स या टेक्स्टरेस में HTML या स्क्रिप्ट पोस्ट करने से रोक देगा।

public static string ClearHTML(string Str, Nullable<int> Character) 
{ 
    string MetinTxtRegex = Regex.Replace(Str, "<(.|\n)+?>", " "); 

    string MetinTxtSubStr = string.Empty; 

    if (Character.HasValue) 
    { 
     if (MetinTxtRegex.Length > Character) 
     { 
      MetinTxtSubStr = MetinTxtRegex.Substring(0, Character.Value); 
      MetinTxtSubStr = MetinTxtSubStr.Substring(0, MetinTxtSubStr.LastIndexOf(" ")) + "..."; 
     } 
     else 
     { 
      MetinTxtSubStr = MetinTxtRegex; 
     } 
    } 
    else 
    { 
     MetinTxtSubStr = MetinTxtRegex; 
    } 
    return MetinTxtSubStr; 
} 
0

आप की तरह प्रवेश से HTML कोड साफ करने के लिए एक विधि का उपयोग कर सकते हैं

HttpUtility.HtmlEncode(); 

अधिक जानकारी here

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