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

时间:2010-07-04 23:40:39

标签: javascript html parsing xss sanitization

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

我四处搜索并在网上找到了一些内容,包括John Resig's HTML parserErik Arvidsson's simple html parserGoogle's Caja Sanitizer,但我无法找到有关人们是否有过良好体验的更多信息使用这些库,我担心它们不够强大,无法处理任意HTML。将HTML发送到Java服务器进行清理会更好吗?

2 个答案:

答案 0 :(得分:2)

你可以用jQuery来解析HTML,但我很确定任何基于黑名单(即过滤掉)的消毒方法都会失败 - 你可能需要一种基于“过滤”的方法,最后你不要无论如何,我都不想依靠JavaScript来保证安全。在任何情况下,您可以使用jQuery进行DOM解析,如下所示:

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

答案 1 :(得分:2)

  

将HTML发送到Java服务器进行清理会更好吗?

过滤“不安全”输入必须在服务器端完成。没有其他办法可以做到这一点。不可能对客户端进行过滤,因为“客户端”可能是一个Web浏览器,或者它就像一个带脚本的机器人一样容易。