【问题标题】:Can objects attached to requests in expressjs be tampered with?expressjs中附加到请求的对象可以被篡改吗?
【发布时间】:2015-06-24 05:29:13
【问题描述】:

在 express.js 中,我们经常将对象附加到中间件中的 req 对象,例如请求.myObject。是什么阻止了用户发送包含已设置为某个值的 req.myObject 的 http 请求?例如,我可以使用 req.myObject 作为身份验证的一部分。发送请求时,用户是否可以设置 req.myObject = true,而实际上它应该为假?如果在某些路由上设置了 req.myObject 而在其他路由上没有设置,但检查 req.myObject 的中间件跨路由重用,则可能会出现问题。

【问题讨论】:

  • 不确定用户如何使用任何 http 动词在 req 上设置任何内容?帖子参数在req.body,获取在req.query,文件在req.files。我错过了什么吗?
  • 否 - 我认为答案可能是这样的,即 expressjs 不允许请求者在请求对象上设置任何对象,而不是有限的对象集......但想要确定。

标签: javascript node.js security express


【解决方案1】:

req 是 Express 在收到请求时创建的对象。它不是直接从客户端传递到服务器的东西,实际上它甚至对客户端都不可用。

客户端只能以某些有限的方式将信息中继到服务器 - GET 查询、POST 表单数据或通过 Express 附加到 req 对象的路由路径为 req.queryreq.body 和 @987654326 @ 分别。

附加到req 对象的任何其他内容都超出了客户端的范围,至少直接如此。

相关问题:Node.js request object documentation?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    • 1970-01-01
    相关资源
    最近更新 更多