1

假设我们有一个简单的节点 JS 后端,搭配标准的 NoSQL 文档存储,例如 CouchDB。由于我们的数据库只是一个没有模式的文档密钥库,因此可以插入任何内容。而且由于我们的服务器也是基于 JSON 构建的,最终来自客户端的带有 JSON 有效负载的 POST 请求最终会直接存储到我们的数据存储中。

这当然非常方便,并且是一个轻量级的应用程序。不过,我一直想知道,没有为每个可能的插入端点编写代码来验证每个 POST 或 PUT 请求是否格式正确,是否有任何东西可以防止攻击者启动他们的开发者控制台并欺骗 POST/PUT 请求,允许他们将任何类型的垃圾数据插入我们的数据存储区?以这种方式破坏应用程序的数据并不难。

显然,基于令牌的身份验证可以确保只有经过身份验证的用户才能访问这些服务端点,但这并不能阻止他们使用与有效请求相同的 HTTP 标头来欺骗这些请求。使用当今的浏览器开发工具,这一切都非常简单。

在像 Java 这样的传统服务器语言中,JSON PUT 和 POST 被编组为高度结构化的基于类的对象。有效负载与这些格式不匹配的请求会因 HTTP 错误而被拒绝。

有谁知道节点的工具或范例可以确保这样的请求符合一些基本的结构标准?

4

0 回答 0