2017-02-07 97 views
1

我了解JWT可以包含有关用户在服务器上验证的角色的一些信息,例如,在scope中,使得非角色用户将不能访问来自保护到该角色的特定端点的数据。客户端JWT基于角色的授权

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

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

考虑到智威汤逊可能会篡改客户端,你如何去保护这样的网页在SPA?

回答

1

正如您所指出的那样,客户端代码可能会被篡改,因此它不适合限制用户访问的逻辑。

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

但是关于如何在SPA中保护页面的具体问题,没有这样的方法。即使代码被混淆,它仍然是一个复杂的用户解剖和任意改变的地方。

+0

非常感谢。实际上,我提到的仪表板的功能都是在单页面应用程序中加载的,并且独立于API数据。我也想保护这些功能。我知道一个复杂的攻击者可以绕过我采取的任何客户端措施,但是我正在寻找一种防止其他99%的措施。 – softcode