jas*_*ace 8 java security xss wysiwyg jsoup
我正在尝试使用jsoup来清理从我的客户端中的一个wysiwyg发布的html(当它发生时)
松弛模式看起来不够宽松,因为默认情况下它会剥离span元素和任何样式属性.
例如
String text = "<p style="color: #ff0000;">foobar</p>";
Jsoup.clean(text, Whitelist.relaxed());
Run Code Online (Sandbox Code Playgroud)
会输出
<p>foobar</p>
Run Code Online (Sandbox Code Playgroud)
和
<span>foobar</span>
Run Code Online (Sandbox Code Playgroud)
将完全删除.
有没有人有任何使用Jsoup消除XSS攻击可能性的经验,仍然允许上述元素和属性通过?
编辑:我已经使用以下内容了.任何人都可以建议这是多么脆弱吗?
Jsoup.clean(pitch, Whitelist.relaxed().addTags("span").addAttributes(":all","style"));
Run Code Online (Sandbox Code Playgroud)
编辑2:是否有人在生产中使用了owasp库.它看起来正确消毒,同时保留正确的样式.OWASP
小智 7
似乎可以使用样式属性来使用XSS.
http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/
http://www.acunetix.com/websitesecurity/cross-site-scripting.htm (查看DIV部分,我认为它对SPAN的工作方式相同)
这里是我编写的一些代码,用于测试最后一个链接中的示例..
text = "<span style=\"width: expression(alert('XSS'));\">";
System.out.println(Jsoup.clean(text, org.jsoup.safety.Whitelist.relaxed().addTags("span").addAttributes(":all","style")));
Run Code Online (Sandbox Code Playgroud)
它准确输出输入.如果这确实是一个XSS向量,那么你仍然可能遇到麻烦.