【问题标题】:JSON Web Token (JWT) SecurityJSON Web 令牌 (JWT) 安全性
【发布时间】:2016-07-20 07:45:03
【问题描述】:

我正在使用 Node.js、MySQL 和 JSON Web Tokens 来构建一个 api。

我的 JWT 如下所示:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlcyI6WyJsb2dnZWRfaW4iLCJhZG1pbiJdLCJpZCI6NzEsImlhdCI6MTQ1OTQ0NjU5MCwiZXhwIjoxNDU5NTMyOTkwfQ.BBbdyFMztYkXlhcBjW6D5SsKxtaRiZJqiNShOroQmhk

及其声明解码为:

{"roles":["logged_in","admin"],"id":71,"iat":1459446590,"exp":1459532990}

当 api 端点接收到该 JWT 时,调用 ID 为 71 的 User 表以获取任何相关详细信息或使用 JWT 中的 ID 是否更安全?

理想情况下,我们会节省大量对 User 表的调用,但是否存在安全威胁?恶意用户不能在调用端点之前更改该 id 或角色吗?

【问题讨论】:

    标签: node.js express jwt


    【解决方案1】:

    JWT 已签名。如果用户更改了负载上的任何内容,签名验证将失败,您将知道数据已被篡改。

    话虽如此,数据本身并未加密。您可以使用用户 ID,但不要添加可能公开的敏感信息。

    更多关于 JWT 验证和生命周期的信息:

    https://github.com/auth0/node-jsonwebtoken#jwtverifytoken-secretorpublickey-options-callback

    【讨论】:

    • 完美。非常感谢!
    猜你喜欢
    • 2016-12-20
    • 2016-08-01
    • 2018-11-12
    • 2019-02-05
    • 2018-10-16
    • 2020-11-13
    • 2017-12-25
    • 2017-09-15
    • 2016-06-09
    相关资源
    最近更新 更多