Ste*_*ers 2 javascript java security sanitization vaadin
Vaadin框架有这个有用的RichTextArea组件.但是,用户可以将有害的javascript插入到此字段中,以便在保存之前对字段的值进行清理.
Vaadin这样做的方式是什么?Vaadin的书只提到该领域"应该消毒",但没有暗示如何实际做到这一点.一周前在论坛上询问没有得到任何回复.
为此,我不想再为项目添加库.如果使用或不使用Vaadin,如何在Java中制作自己的RichTextArea消毒剂?
最简单的方法是使用附带Vaadin 7的JSoup(vaadin-server取决于它).例如:
Jsoup.clean(richTextArea.getValue(), Whitelist.simpleText())
Run Code Online (Sandbox Code Playgroud)
看到 Jsoup.clean
Run Code Online (Sandbox Code Playgroud)public static String clean(String bodyHtml, Whitelist whitelist)通过解析输入HTML并通过允许的标记和属性的白名单对其进行过滤,从不受信任的输入HTML中获取安全的HTML.
参数:
bodyHtml- 输入不受信任的HTML(正文片段)
whitelist- 允许的HTML元素的白名单返回:
安全的HTML(正文片段)
Run Code Online (Sandbox Code Playgroud)public class Whitelist extends Object白名单定义允许通过清理器的HTML(元素和属性).其他一切都被删除了.
从其中一个默认值开始:
none()simpleText()basic()basicWithImages()relaxed()