可以在请求中操纵req对象

时间:2017-05-05 07:56:40

标签: node.js express

可以在HTTP请求中操纵req对象吗?那么请求是否有可能为req.token设置值?我知道req.queryreq.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
    }
});

1 个答案:

答案 0 :(得分:1)

是的,它是安全的,前提是您不要覆盖具有特殊含义的属性(可以找到这些属性的非详尽列表here)。

这是一种常用技巧,它也显示在the Express documentation中。