是否有可用的基于Javascript的HTML解析库?

nas*_*nas 6 html javascript xss parsing sanitization

我的目标是获取最终用户输入的HTML,删除某些不安全的标签<script>,然后将其添加到文档中.有没有人知道一个好的Javascript库来清理HTML?

我搜索了一下,发现了一些在线,包括John Resig的HTML解析器,Erik Arvidsson的简单html解析器Google的Caja Sanitizer,但是我还没有找到很多关于人们是否有使用这些库的好经验的信息,而且我我担心它们不够强大,无法处理任意HTML.将HTML发送到Java服务器进行清理会更好吗?

Mat*_*ell 2

您可以使用jQuery解析 HTML ,但我很确定任何基于黑名单(即过滤掉)的清理方法都会失败 - 您可能需要一种基于“过滤”的方法,并且最终您不想依赖无论如何,JavaScript 都是为了安全。在任何情况下,作为参考,您都可以使用 jQuery 进行 DOM 解析,如下所示:

var htmlS = "<html>etc.etc.";
$(htmlS).remove("script"); /* DONT RELY ON THIS FOR SECURITY */
Run Code Online (Sandbox Code Playgroud)

  • 查看此网页,了解容易受到 XSS 攻击的所有疯狂方式。http://ha.ckers.org/xss.html。不幸的是,仅仅删除脚本标签还不够好...... (3认同)
  • @gerdemb - 当然,任何 HTML 清理都应该作为白名单而不是黑名单来实现。 (2认同)