Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jsoup白名单放松模式对wysiwyg编辑器太严格_Java_Security_Wysiwyg_Jsoup_Xss - Fatal编程技术网

Java jsoup白名单放松模式对wysiwyg编辑器太严格

Java jsoup白名单放松模式对wysiwyg编辑器太严格,java,security,wysiwyg,jsoup,xss,Java,Security,Wysiwyg,Jsoup,Xss,我正试图使用jsoup来清理客户端中所见即所得的html(tinymce) “松弛”模式似乎不够松弛,因为默认情况下,它会剥离跨元素和任何样式属性 乙二醇 编辑2:有人在生产中使用过owasp库吗。它看起来可以在保持正确样式的同时进行正确的消毒 似乎可以让XSS使用style属性 (看看DIV部分,我假设它对SPAN的作用相同) 下面是我为测试上一个链接中的示例而编写的一些代码 text = "<span style=\"width: expression(alert('XSS

我正试图使用jsoup来清理客户端中所见即所得的html(tinymce)

“松弛”模式似乎不够松弛,因为默认情况下,它会剥离跨元素和任何样式属性

乙二醇


编辑2:有人在生产中使用过owasp库吗。它看起来可以在保持正确样式的同时进行正确的消毒

似乎可以让XSS使用style属性

(看看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")));
text=”“;
System.out.println(Jsoup.clean(text,org.Jsoup.safety.Whitelist.released().addTags(“span”).addAttributes(“:all”,“style”)));

它精确地输出输入。如果这确实是一个XSS向量,那么您可能仍然有麻烦。

您一定是指Jsoup.clean(),对吧?B.安德森干杯。我已经改正了。细节不错。谢谢您知道我可以使用哪个库或方法来测试传递的样式属性内容的安全性吗?否则,我将不得不去掉tinymce提供的大多数可爱的wysiwyg样式功能?我已经尝试了您给出的示例,jsoup足够聪明,可以去掉有问题的样式属性,但允许通过一个简单的样式,如style=“color:red”。不过我还是感到不安。抱歉。Jsoup没有剥离您提供的B.Anderson的XSS攻击。tinymce在发布(显然是可黑客攻击的)owasp消毒剂之前将其剥离。尽管在主要部分看到我的编辑,但它看起来很有趣。感谢B,Anderson,我将此标记为正确答案。我无法找到正确清理样式属性服务器端的解决方案,因此(不情愿地)将tinymce中的功能限制在最低限度,并将Jsoup白名单放在basic()中。
<p>foobar</p>
<span>foobar</span>
Jsoup.clean(pitch, Whitelist.relaxed().addTags("span").addAttributes(":all","style"));
    text = "<span style=\"width: expression(alert('XSS'));\">";
    System.out.println(Jsoup.clean(text, org.jsoup.safety.Whitelist.relaxed().addTags("span").addAttributes(":all","style")));