【发布时间】:2014-12-08 06:28:24
【问题描述】:
Vaadin 框架有这个有用的 RichTextArea 组件。然而,用户可能会在此字段中插入有害的 javascript,因此应在保存之前对字段的值进行清理。
Vaadin 的做法是什么?瓦丁之书只提到该字段“应该被清理”,但并未给出如何实际执行的提示。一周前在论坛上提问没有得到任何回复。
我不想为此向项目添加更多库。在有或没有 Vaadin 的情况下,如何用 Java 制作自己的 RichTextArea 消毒剂?
【问题讨论】:
-
这取决于您将输出输入值的位置。如果您通过 RichText 或 Label 组件“显示”它们,那么您无需执行任何操作,因为它们会在显示时正确转义。
-
它将显示在视图中并作为实体 Bean 的属性保存在数据库中(这是描述订单的消息)。我猜 Vaadin 中适合富文本输入的查看组件只是只读模式下的 RichTextArea。
-
在这种情况下,您不需要做任何事情。由于 vaadin RichTextArea 应该正确地转义 JS 的东西。这不会阻止最终用户以 的形式输入 javascript,但在显示时它不应该被执行,只是显示为 。但是请注意,如果您将来在某个地方使用另一个 UI 显示它,那么它可能会中断....
-
不,你没有完美保存。如果 RTE 被输入恶意代码,该代码将存在于 DOM 中(但处理方式,它不会直接执行),因此可以桥接到存储的 XSS。自己编写而不使用库也肯定会出错。
标签: java javascript security vaadin sanitization