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

Sanitize user submitted HTML but keep safe embedded iframes

本文关键字:安全 iframe 用户 提交 HTML      更新时间:2023-09-26

我需要清除用户输入的恶意html &CKEditor提交。我目前使用的是owasp-java-html-sanitizer。出于这个目的,但它也删除了嵌入的iframe。但是我有一些真正的用例,比如在帖子中嵌入YouTube视频或幻灯片共享演示。

我怎么能允许这样的嵌入式框架安全?

您需要允许iframe元素和source属性到您的Html策略。您可以像下面的例子那样做,修改自java文档

 // 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));