客户端JWT基于角色的授权

时间:2017-02-07 02:31:25

标签: javascript security authorization jwt

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

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

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

考虑到JWT可以被客户端篡改,您如何在SPA中保护这些页面?

1 个答案:

答案 0 :(得分:1)

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

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

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