如何确保对REST API的POST请求是"安全"

时间:2014-08-11 18:02:23

标签: node.js security rest express

我有一个带有NodeJs,Express和MongoDB的JSON REST-api。 多个用户帐户正在将此API用于Web应用程序的CRUD资源。 通过/ login路由授予对API的访问权限,用户可以在其中建立会话。

但是让我说我​​的一个用户是邪恶的,并且他知道前端正在与API通信,并且他想要向API发送一些意外的JSON数据。

让我们说他与API建立会话,然后使用REST-client(如POSTMAN)发送不希望POST路由的JSON。

期待这样的事情的路线是什么

{
  name: "Anders",
  age: 32, 
  country: "sweden"
}

但是从邪恶的"中收到这样的东西。用户使用REST客户端。

{
  wrong_key1: 23423432423423,
  wrong_key2: 2341234123431542315413, 
  wrong_key2: ["ascdaeawe", "sadfasfe", "sdfahrta"]
  wrong_key4: "http://www.evildomain.com/",
}

处理此问题的最佳方法是什么?

  1. 只过滤掉req.body 中的预期值,验证它们并忽略所有其他值?
  2. 禁止来自其他域的请求,确保请求仅来自我的网络应用域?这似乎有点"反REST" 虽然,我甚至不知道这是否可行。
  3. 预计登录用户永远不会做这样的事情,因此不会处理它?<​​/ li>
  4. 别的什么......?

0 个答案:

没有答案