用户 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
上的属性。
我是 Node.js 的新手,写过一些像
这样的代码request.validToken = 真;
一旦我确认请求中的令牌有效。
然后我将检查 validToken 是否已经为真。但我想知道的是,攻击者是否可以编辑该请求,使该字段存在于原始请求中,从而允许他们绕过安全检查?
如果是这样,最佳做法是什么?
不,客户端无法访问节点中的 request
对象。
唯一的机会是,如果您使用来自客户端的数据在 request
对象上盲目设置属性,例如:
Object.keys(request.body).forEach(function(k) {
request[k] = request.body[k];
});
只有这样才能有人 POST 一个表单主体 overwrite/set request
上的属性。