可以在HTTP请求中操纵req
对象吗?那么请求是否有可能为req.token
设置值?我知道req.query
,req.body
等各种对象属性可以从外部自由更改,但是可以添加req.token
等新属性,还是这个示例代码是安全的?
var auth = function (req, res, next) {
if (isValid()) {
req.token = getToken();
return next();
}
}
app.get('/foo', auth, function(req, res) {
if (req.token) {
// valid request
} else {
// invalid request
}
});
答案 0 :(得分:1)
是的,它是安全的,前提是您不要覆盖具有特殊含义的属性(可以找到这些属性的非详尽列表here)。
这是一种常用技巧,它也显示在the Express documentation中。