清理用户提交的HTML但保持安全的嵌入式iframe

时间:2014-08-16 17:07:27

标签: java javascript html security ckeditor

我需要清理恶意html&的用户输入。由CKEditor提交。我目前使用owasp-java-html-sanitizer。为此目的,它也删除了嵌入的iframe。但我有真实的用例,例如在帖子中嵌入YouTube视频或幻灯片共享演示文稿。

我怎样才能安全地允许这样的嵌入式iframe?我使用Java。

1 个答案:

答案 0 :(得分:0)

您需要将iframe元素和source属性设置为Html策略。 您可以像从java doc

修改的以下示例那样执行此操作
 // Define the policy.
 Function<HtmlStreamEventReceiver, HtmlSanitizer.Policy> policy
     = new HtmlPolicyBuilder()
         .allowElements("a", "p", "iframe")
         .allowAttributes("href").onElements("a")
         .allowAttributes("source").onElements("iframe")
         .toFactory();

 // Sanitize your output.
 HtmlSanitizer.sanitize(myHtml, policy.apply(myHtmlStreamRenderer));