2009-12-22 9 views
14

के लिए लिब्स मैं एक एचटीएमएल sanitizer की तलाश में हूँ जो मैं अपने वेबपैड से प्राप्त तारों को sanitize करने के लिए प्रति एपीआई कॉल कर सकते हैं। क्या उपलब्ध libs का उपयोग करने के लिए कुछ उपयोगी आसान हैं? क्या कोई शायद एक या दो जानता है?एचटीएमएल sanitizing

मुझे कुछ बड़ा करने की ज़रूरत नहीं है, यह केवल अनजान टैग ढूंढने और उन्हें बंद करने में सक्षम होना चाहिए।

उत्तर

10

JTidy आपकी मदद कर सकता है।

+0

हाँ idd, jTidy मुझे यहाँ से बाहर मदद करते हैं। साझा करने के लिए धन्यवाद। – onigunn

24

https://github.com/OWASP/java-html-sanitizer अब उत्पादन प्रयोग के लिए तैयार चिह्नित है।

जावा में लिखे गए एचटीएमएल सैनिटाइज़र को कॉन्फ़िगर करने के लिए एक तेज़ और आसान है जो आपको एक्सएसएस के खिलाफ सुरक्षा करते समय अपने वेब एप्लिकेशन में तृतीय पक्ष द्वारा लिखित HTML शामिल करता है।

आप prepackaged policies

Sanitizers.FORMATTING.and(Sanitizers.LINKS) 

या tests उपयोग कर सकते हैं दिखाने के लिए आप अपने खुद के आसानी से कॉन्फ़िगर कर सकते हैं:

new HtmlPolicyBuilder() 
    .allowElements("a") 
    .allowUrlProtocols("https") 
    .allowAttributes("href").onElements("a") 
    .requireRelNofollowOnLinks() 

या लिखने कस्टम div रों को h1 रों बदलने जैसे काम करने के लिए नीतियों एक निश्चित कक्षा के साथ:

new HtmlPolicyBuilder() 
    .allowElements("h1", "p") 
    .allowElements(
     new ElementPolicy() { 
      public String apply(String elementName, List<String> attrs) { 
      attrs.add("class"); 
      attrs.add("header-" + elementName); 
      return "div"; 
      } 
     }, "h1")) 
+0

यह लाइब्रेरी एक अच्छा पहला प्रभाव बनाता है: अच्छी तरह से प्रलेखित और एक स्वच्छ एपीआई। –

+0

मैं इस पुस्तकालय का उपयोग करता हूं लेकिन यह एम्बेडेड iframes को भी हटा देता है। Iframes जोड़ने की अनुमति देने का कोई तरीका है, मेरे पास वास्तविक उपयोग केस हैं जैसे यूट्यूब वीडियो या स्लाइडशेयर प्रस्तुति एम्बेड करना। मैं ऐसे एम्बेडेड iframes कैसे अनुमति दे सकता है? –

+1

@ usero1, हां, आप अनुमति दे सकते हैं ("iframe") '। –