知道如何防止对node.js应用程序进行XSS攻击吗?在那里处理删除href,onclick属性等中的javascript的任何库。从发布的数据?
我不想为所有这些写正则表达式:)
有什么建议?
建议从GoogleCaja借用JS中基于白名单的JS中的HTML清理器,据我快速浏览可知,该实现器不依赖HTML来实现HTML SAX解析器。浏览器的DOM。
更新: 另外,请记住,Caja消毒器显然已经过全面,专业的安全检查,而正则表达式以易于破坏安全性的方式而闻名。
2017年9月24日更新: 现在也有DOMPurify。我还没有使用过它,但是看起来它达到或超过了我要寻找的每一个要点:
尽可能依靠运行时环境提供的功能。(通过尽可能多地使用经过测试的成熟实现,对于性能和最大化安全性都非常重要。)
默认配置旨在尽可能减少剥离,同时仍保证删除javascript。
支持HTML,MathML和SVG
toStaticHTML
高度可配置,使其适用于对可以包含任意HTML的输入进行限制,例如WYSIWYG或Markdown注释字段。(实际上,这是这里的顶端)
支持常用的标签/属性白名单/黑名单和URL regex白名单
他们对兼容性和可靠性很重视
在16种不同的浏览器以及Node.JS的三个不同主要版本上运行的自动化测试。