2010-01-12 6 views
7

का .NET कार्यान्वयन है .NET के लिए एक व्यापक HTML क्लीनर/एंटी-एक्सएसएस लाइब्रेरी है जिसमें एक परिभाषित श्वेतसूची भी है। मुझे पता है कि माइक्रोस्कोफ्ट एंटी-एक्सएसएस शुरू करने के लिए एक अच्छी जगह है, लेकिन इसे एचटीएमएल टैग और सीएसएस के लिए एक अच्छी श्वेतसूची की जरूरत है। क्या किसी को कुछ पता है?क्या HtmlPurifier (php)

उत्तर

9

माइक्रोसॉफ्ट के Anti-XSS लाइब्रेरी (जो आपने उल्लेख किया है) के साथ क्या गलत है?

उनके पास व्यापक HTML स्वच्छता है जो सफेद सूची के आधार पर वर्णों को फ़िल्टर करता है, HTML को पार्स करता है, एक सफेद सूची के आधार पर नोड्स फ़िल्टर करता है, और फिर (सुरक्षित) HTML को पुन: उत्पन्न करता है। आप सफेद सूचियों को बदल सकते हैं (चूंकि कोड खुला है), लेकिन मुझे यकीन नहीं है कि आप चाहते हैं।

प्रयोग भी सरल है:

var sanitizedHtml = Microsoft.Security.Application.Sanitizer.GetSafeHtmlFragment(inputHtml); 
+0

यह बहुत अच्छा है! मैं अपना खुद का प्यारा sanitizer लिख रहा हूँ ... और नहीं! – Chaddeus

+7

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

1

(देखें "की अनुमति दे प्रतिबंधित एचटीएमएल इनपुट") MSDN के अनुसार सबसे अच्छा तरीका HTML इनपुट को साफ़ करने में() अपने इनपुट पर HttpUtility.HtmlEncode कॉल करने के लिए और फिर चुनिंदा तो जैसे अपने सभी श्वेत सूची टैग पर एन्कोडिंग की जगह है:

<%@ Page Language="C#" ValidateRequest="false"%>  
<script runat="server">  
    void submitBtn_Click(object sender, EventArgs e) 
    { 
    // Encode the string input 
    StringBuilder sb = new StringBuilder(
          HttpUtility.HtmlEncode(htmlInputTxt.Text)); 
    // Selectively allow and <i> 
    sb.Replace("&lt;b&gt;", "<b>"); 
    sb.Replace("&lt;/b&gt;", ""); 
    sb.Replace("&lt;i&gt;", "<i>"); 
    sb.Replace("&lt;/i&gt;", ""); 
    Response.Write(sb.ToString()); 
    } 
</script> 

this article भी देखें।

+2

यह सामग्री पुरानी हो चुकी है और बनाए रखा जा रहा नहीं रह गया है। 200 उपयोगकर्ताओं में से 12 उपयोगकर्ताओं ने इसे उपयोगी पाया। –

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