Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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 对瓦丁区进行消毒_Java_Javascript_Security_Vaadin_Sanitization - Fatal编程技术网

Java 对瓦丁区进行消毒

Java 对瓦丁区进行消毒,java,javascript,security,vaadin,sanitization,Java,Javascript,Security,Vaadin,Sanitization,Vaadin框架有这个有用的RichTextArea组件。但是,用户可以将有害的javascript插入此字段,因此在保存前应对字段的值进行清理 瓦丁会怎么做?《瓦丁之书》只提到这个领域“应该被消毒”,但并没有给出一个实际如何做到这一点的暗示。一周前在论坛上提问没有得到任何回复 为此,我不想在项目中添加更多的库。一个人会如何继续在爪哇制造自己的RichTextArea消毒剂,使用或不使用Vaadin 最简单的方法是使用vaadin7附带的JSoup(vaadinserver取决于它)。例如: 看

Vaadin框架有这个有用的RichTextArea组件。但是,用户可以将有害的javascript插入此字段,因此在保存前应对字段的值进行清理

瓦丁会怎么做?《瓦丁之书》只提到这个领域“应该被消毒”,但并没有给出一个实际如何做到这一点的暗示。一周前在论坛上提问没有得到任何回复


为此,我不想在项目中添加更多的库。一个人会如何继续在爪哇制造自己的RichTextArea消毒剂,使用或不使用Vaadin

最简单的方法是使用vaadin7附带的JSoup(
vaadinserver
取决于它)。例如:

通过解析输入HTML并通过允许的标记和属性的白名单进行过滤,从不受信任的输入HTML中获取安全的HTML

参数:

bodyHtml
-输入不受信任的HTML(正文片段)

白名单
-允许的HTML元素白名单

返回:

安全HTML(正文片段)

白名单定义了允许通过cleaner的HTML(元素和属性)。其他一切都被删除了

从一个默认值开始:

  • none()
  • simpleText()
  • basic()
  • basicWithImages()
  • relaxed()

这取决于输入值的输出位置。如果您通过RichText或Label组件“显示”它们,则无需执行任何操作,因为它们在显示时将正确转义。它将显示在视图中,并作为实体Bean的属性保存在数据库中(这是一条描述顺序的消息)。我想Vaadin中适合富文本输入的查看组件只是一个只读模式的RichTextArea。在这种情况下,您不需要做任何事情。因为vaadin RichTextArea应该正确地避开JS内容。这不会阻止最终用户以..的形式输入javascript。。。。。但在显示时,不应执行它,而应显示为。。。。。但是要注意,如果你在将来的某个地方用另一个UI显示它,它可能会崩溃……不,你不是完全保存的。如果RTE收到恶意代码,则该代码将存在于DOM中(但处理方式不会直接执行),因此这可以桥接到存储的XSS中。另外,写你自己的,不使用图书馆肯定会出错。谢谢!是的,我现在正在成功地使用它。
Jsoup.clean(richTextArea.getValue(), Whitelist.simpleText())
public static String clean(String bodyHtml, Whitelist whitelist)
public class Whitelist extends Object