jwt - 为什么我可以在 jwt.io 上轻松解码 auth0 id_token?

标签 jwt auth0

好的,我正在开发一个 Angular 2 应用程序。我添加了 auth0 身份验证,但对我来说它处理 session 非常不安全。 jwt token 未加密并保存在 localStorage 中。这些声明对任何人都是可见的,它们可以很容易地被解码和揭示。更不用说,Web Storage 本身并不是一个安全的地方。

我选择了 JWT,因为后来我想用电子将此 Web 应用程序转换为桌面应用程序,所以我不能使用 cookie session 。我的用户将拥有诸如角色之类的附加信息,我不想在每次请求时都在 db 中查找这些信息,这就是我想将它们存储在 jwt 中的原因。加密数据是有意义的,但 auth0 似乎没有提供该功能。

如果像角色这样的声明存储在不 protected localStorage 中,是什么阻止我去 Firefox 控制台并更改 token ,例如让自己成为管理员?

最佳答案

If claims like roles are stored in localStorage unprotected, what's stopping me to go to firefox console and change the token, e.g. make myself an admin?


因为 JWT 签名 , 因此在验证过程中将检测到对内容或签名的任何更改
数字签名,像这样的 JWT token 的第三部分 hhhhhh.ppppppp.ssssss是使用服务器私钥创建的,是您可以验证 token 发行者身份以及它未被更改的方式
如果您想隐藏有效负载,JWT 规范允许使用加密(请参阅 Json Web Encryption-JWE at RFC)。如果 auth0 不支持它,那么 jwt.io 中列出了很多库。

关于jwt - 为什么我可以在 jwt.io 上轻松解码 auth0 id_token?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38457590/

相关文章:

javascript - 使用Vue.js和Auth0进行前端认证时如何在Django的后端数据库中创建用户

spring-security-oauth2 - 覆盖 JWT OAuth token 的 UserAuthenticationConverter

json - 如何在 Swift 中解码 JWT(JSON 网络 token ) token ?

之前无法验证 JWT Token

node.js - 如何使用JWT和Passport正确使用nodeJs API的身份验证?

javascript - 从 MongoDB 查询中获取数据(在 Auth0 规则中)

python - OTP 验证时 JWT token 不匹配

node.js - 有没有办法使用express-jwt在nodejs中不 protected 端点中访问jwt用户信息?

spring-boot - Auth0 - 无法检索远程 JWK 集 : Read timed out

javascript - 使用 Auth0 在所有应用程序中单点注销