【问题标题】:Security JWT in payload有效载荷中的安全 JWT
【发布时间】:2017-05-17 22:23:21
【问题描述】:

我正在开发一个 REST API,但我对通过 JWT 进行身份验证的正确方法、令牌有效负载中包含哪些信息以及最佳实践和最安全的方法有一些疑问:

在有效负载令牌中包含 mongoDB 的 ObjectId 是否安全?

{
  "sub": "507f191e810c19729de861ea",
  "name": "John Doe",
  "rol": "admin"
}

如果用户导航到受保护的路线,请检查令牌中的“子”,例如:

“api/dashboard /: userId“

并在请求中进行比较,此示例在 Express.js 中

.get('api/dashboard/:userId', (req, res)=> {
  if(Req.params.uiserID != token.payload.sub) {
     Res.status(401).send({ message: ‘No authorization’})   
 } 
})

以上被认为是安全的吗?

【问题讨论】:

    标签: jwt json-web-token


    【解决方案1】:

    sub 声明标识了作为 JWT 主题的主体,并且预计在颁发者(或全局)上下文中是唯一的。只要您尊重它的唯一性、不要更改并且不要泄露私人数据,发送内部 ID 并不是一个坏习惯。 (内部的十六进制字符串不能被认为是私有的)

    在服务器端,您需要验证令牌的签名以检查真实性并且数据未被更改。在此之后使用嵌入在 JWT 中的数据检查对受保护资源的访问是安全的

    【讨论】:

      猜你喜欢
      • 2020-04-26
      • 2017-01-02
      • 2021-11-02
      • 1970-01-01
      • 2021-06-13
      • 2020-05-14
      • 2011-10-01
      • 2016-03-04
      • 1970-01-01
      相关资源
      最近更新 更多