首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular 5中的JWT授权

Angular 5中的JWT授权
EN

Stack Overflow用户
提问于 2018-04-12 17:46:40
回答 1查看 416关注 0票数 1

我正在尝试实现JWT身份验证和授权,但是我担心前端部分的JWT篡改。我得到了后端的顺利和安全的工作。现在我在Angular 5中实现了JWT授权和身份验证。我是一个实现JWT令牌的初学者,所以请耐心听我说,希望你们能对此有所了解。

我知道,每当您篡改令牌时,JWT都会因为签名而失效。后端将拒绝处理该请求,但假设前端有以下场景:

1-恶意用户使用普通帐号登录,并从后端接收JWT令牌。

2-恶意用户通过向有效负载添加额外的"admin“角色来篡改JWT令牌(这会使jwt无效)

3-恶意用户试图访问持有被篡改的JWT令牌的受保护路由

4- Route guard检查令牌是否过期(通过检查有效负载中的过期声明?)

5-用户决定再次篡改JWT以增加JWT过期声明(根据后端,JWT token仍然无效)

6- Route对JWT进行解码,发现JWT未过期,并且用户具有管理员角色,并且允许恶意用户访问页面并看到呈现的HTML (后端操作是安全的,因为首先验证令牌)

我是不是遗漏了什么?我如何才能防止这种情况发生?我想阻止用户访问页面,即使它是半途而废。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-12 18:10:48

我觉得你说对了。

为了避免这种问题,您可以在用户第一次进入管理模块时发出请求,以检查令牌是否有效。如果没有,您将断开连接或重定向。

Secodn选项是让它流动,并实现一个HTTP拦截器。用户将能够看到后台的HTML,但他最终将不得不提出请求。在这种情况下,您将拦截器重定向到403个错误,这意味着您的用户将永远无法访问您的后端数据。

最后,您还可以在应用程序启动时存储令牌的初始值,并在用户进入管理模块时检查该值是否已更改。

如果值已更改,则用户使用其令牌,您只需重定向他即可。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49793317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档