【问题标题】:Make user submited content safe. Escaping HTML in Java (JSP) [closed]使用户提交的内容安全。在 Java (JSP) 中转义 HTML [关闭]
【发布时间】:2013-07-22 17:46:23
【问题描述】:

我想让我的网站免受 XSS 攻击或用户在 cmets 部分提交 HTML 的影响。我想让所有提交的 HTML 都“不安全”并转义它们,除了我用来突出显示通过 javascript 提交的代码的一个标记(它使代码漂亮)。这个概念称为 HTML 净化。我只希望<pre> 标签是安全的。

http://en.wikipedia.org/wiki/HTML_sanitization

【问题讨论】:

  • 您可能正在尝试重新发明 Markdown。使用 Markdown 转换器;这比你想象的要难得多。
  • @SLaks +1 打印 HTML 涉及很多内容,尤其是当它来自外部资源时。其中最重要的一点是确保所有打开的标签最终都关闭。

标签: java html jsp escaping sanitization


【解决方案1】:

使用OWASP Sanitizer,您可以创建一个只允许<pre>标签通过的策略:

// Define the policy.
Function<HtmlStreamEventReceiver, HtmlSanitizer.Policy> policy
    = new HtmlPolicyBuilder()
        .allowElements("pre")
        .toFactory();

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-15
    • 1970-01-01
    相关资源
    最近更新 更多