代码之家  ›  专栏  ›  技术社区  ›  KeatsPeeks

如何清理HTML代码以防止Java或JSP中的XSS攻击?

  •  14
  • KeatsPeeks  · 技术社区  · 16 年前

    我正在编写一个基于servlet的应用程序,其中需要提供一个消息传递系统。我很忙,所以我选择 CKEditor

    HTML Purifier

    有没有类似的成熟库可以在Java中使用 ? 基于白名单的简单字符串替换似乎不够,因为 (这可能会改变信息显示页面的设计)。

    如果没有,那我该怎么办?XML解析器似乎有点过分了。

    注意:关于这一点有很多问题,但是所有的答案都涉及到过滤所有的HTML标记:我想保留有效的格式标记。

    3 回复  |  直到 10 年前
        1
  •  10
  •   Community Mohan Dere    9 年前
        2
  •  22
  •   Community Mohan Dere    9 年前

    我建议使用 Jsoup its site .

    Sanitize untrusted HTML

    问题

    cross-site scripting

    解决方案

    Cleaner 具有由指定的配置 Whitelist

    String unsafe = 
          "<p><a href='http://example.com/' onclick='stealCookies()'>Link</a></p>";
    String safe = Jsoup.clean(unsafe, Whitelist.basic());
          // now: <p><a href="http://example.com/" rel="nofollow">Link</a></p>
    

    Jsoup提供了更多的优势。另请参见 Pros and Cons of HTML parsers in Java

        3
  •  2
  •   wilsona    16 年前

    如果所有现成的选项都不够的话,那么下面有一系列关于XSS和攻击预防的优秀文章 Google Code . 如果你最终走上这条路,它应该会提供大量的信息。