【发布时间】:2014-11-16 22:49:27
【问题描述】:
我认为不信任任何输入是网络上众所周知的最佳做法。句子
“所有输入都是邪恶的。”
可能是关于输入验证的引用最多的引用。现在,对于 HTML,您可以使用 DOMPurify 等工具对其进行清理。
我的问题是,如果我有一个运行 Express 和 body-parser 中间件来接收和解析 JSON 的 Node.js 服务器,我是否还需要运行任何清理程序?
我(也许是天真?)对此的想法是 JSON 只是数据,没有代码,如果有人发送无效的 JSON,body-parser(内部使用 JSON.parse())无论如何都会失败,所以我知道我的应用程序将收到一个有效的 JavaScript 对象。只要我不对其运行 eval 或调用函数,我应该没问题,不是吗?
我错过了什么吗?
【问题讨论】:
-
在我看来,body-parser 已经在清理输入,因此您不需要自己这样做。另一方面,对输入进行双重清理并没有什么害处,除非它是性能瓶颈。
标签: javascript node.js json sanitization dompurify