javascript - 客户端 JWT 基于角色的授权

标签 javascript security authorization jwt

我了解 JWT 可以包含一些有关要在服务器上验证的用户 Angular 色的信息,例如在范围中,这样非 Angular 色用户将无法从受该 Angular 色保护的某些端点访问数据。

{
  "iss": "http://issuer.com",
  "exp": 1300819380,
  "scopes": ["customer", "supplier", "seller"],
  "sub": "user@issuer.com"
}

所以数据是安全的。但假设我有一个仪表板,我想阻止用户查看其功能。

考虑到 JWT 可能会被客户端篡改,您如何在 SPA 中保护此类页面?

最佳答案

正如您所指出的,客户端代码可能会被篡改,因此对于限制用户访问的逻辑来说,它不是一个安全的地方。

假设仪表板的功能实际上是 API 提供的功能(例如,查看通过 GET 请求检索的数据,或通过 POST、PUT、DELETE 请求操作数据),您可以改为保护这些 API 端点。因此,即使恶意用户篡改了客户端代码,他们也不会获取或更改任何 protected 数据。

但是对于您关于如何保护 SPA 中页面的具体问题,没有这样的方法。即使代码被混淆了,老练的用户仍然可以随意剖析和修改。

关于javascript - 客户端 JWT 基于角色的授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42080674/

相关文章:

javascript - jQuery 多实例插件在 setTimeout 中使用 "this"

javascript - 遍历 jQuery 表中的第二列

Symfony2 - AccessDecisionManager 使用的安全投票者的优先级设置如何?

ajax - Wordpress Rest API 登录

OAuth-2.0/JWT-关于何时使用作用域与角色的指南

javascript - 使用分隔符jquery自动将输入字段值写入textarea

javascript - 形式参数后缺少 jquery/javascript )

php - 选民导致 500 错误而不是 403

node.js - 开源程序中的加密?

algorithm - 安全地用于 "resetting password"的强算法