2012-02-09 10 views
8

मैं अपने ग्राहक में आराम मोड एचटीएमएल एक wysiwyg से पोस्ट को साफ़ करने में (TinyMCE के रूप में यह होता है)jsoup श्वेतसूची आराम मोड wysiwyg संपादक

jsoup उपयोग करने का प्रयास कर रहा हूँ के लिए भी सख्त पर्याप्त छूट दी जा करने के लिए नहीं दिखाई देता है डिफ़ॉल्ट रूप से यह अवधि तत्वों और किसी भी शैली विशेषताओं स्ट्रिप्स।

जैसे

String text = "<p style="color: #ff0000;">foobar</p>"; 

    Jsoup.clean(text, Whitelist.relaxed()); 

उत्पादन

<p>foobar</p> 

और

<span>foobar</span> 

पूरी तरह से हटा दिया जाना होगा।

क्या किसी को भी XSS हमलों की संभावना को खत्म करने के लिए Jsoup का उपयोग करने का कोई अनुभव है और अभी भी उपर्युक्त तत्वों और विशेषताओं को अनुमति देता है?

संपादित करें: मैं निम्नलिखित के साथ चला गया है। क्या कोई इस बात पर सलाह दे सकता है कि यह कितना कमजोर है?

Jsoup.clean(pitch, Whitelist.relaxed().addTags("span").addAttributes(":all","style")); 

संपादित करें 2: क्या किसी ने उत्पादन में ओवस्प लाइब्रेरी का उपयोग किया है। सही स्टाइल को संरक्षित करते समय यह सही ढंग से स्वच्छता दिखता है। OWASP

+0

आपको जसोप.क्लान(), सही होना चाहिए? –

+0

चीयर्स बी एंडरसन। मैंने सुधार किया है। – jaseFace

उत्तर

7

ऐसा लगता है कि यह शैली विशेषता का उपयोग XSS होना संभव नहीं है ..

XSS attacks and style attributes

http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/

http://www.acunetix.com/websitesecurity/cross-site-scripting.htm (DIV खंड है, जो मैं काम करता है के लिए एक ही ग्रहण करेंगे को देखो स्पैन)

यहां कुछ कोड है जो मैंने अंतिम लिंक में उदाहरण का परीक्षण करने के लिए लिखा है ..

text = "<span style=\"width: expression(alert('XSS'));\">"; 
    System.out.println(Jsoup.clean(text, org.jsoup.safety.Whitelist.relaxed().addTags("span").addAttributes(":all","style"))); 

यह इनपुट को बिल्कुल आउटपुट करता है। यदि वह वास्तव में एक एक्सएसएस वेक्टर है, तो आप अभी भी परेशानी में हो सकते हैं।

+0

अच्छा विवरण। धन्यवाद। क्या आप लाइब्रेरी या विधि के बारे में जानते हैं जिसका उपयोग मैं पारित शैली विशेषता की सामग्री की सुरक्षा का परीक्षण करने के लिए कर सकता हूं? अन्यथा मुझे tinymce के माध्यम से उपलब्ध सबसे प्यारी wysiwyg स्टाइल सुविधाओं को बाहर करना होगा? – jaseFace

+0

क्षमा करें ... मैं नहीं करता। –

+0

मैंने आपके द्वारा दिए गए उदाहरण की कोशिश की है और jsoup अपमानजनक शैली विशेषता को बाहर निकालने के लिए पर्याप्त चालाक है लेकिन शैली = "रंग: लाल" जैसी सरल शैली के माध्यम से अनुमति देता है। हालांकि मैं अभी भी इसके बारे में असहज छोड़ दिया गया है। – jaseFace

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