用户 add/change 对象的 "request" 属性是否可以(并导致安全漏洞)?

Can user add/change properties of the "request" object (and cause a security vulnerability)?

我是 Node.js 的新手,写过一些像

这样的代码

request.validToken = 真;

一旦我确认请求中的令牌有效。

然后我将检查 validToken 是否已经为真。但我想知道的是,攻击者是否可以编辑该请求,使该字段存在于原始请求中,从而允许他们绕过安全检查?

如果是这样,最佳做法是什么?

不,客户端无法访问节点中的 request 对象。

唯一的机会是,如果您使用来自客户端的数据在 request 对象上盲目设置属性,例如:

Object.keys(request.body).forEach(function(k) {
  request[k] = request.body[k];
});

只有这样才能有人 POST 一个表单主体 overwrite/set request 上的属性。