首页 文章

Angular中的JWT授权5

提问于
浏览
1

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

我知道无论何时篡改令牌,JWT都会因签名而失效 . 然后后端将拒绝处理请求,但假设前端中存在以下情况:

1 - Evil用户使用普通帐户登录并从后端接收JWT令牌 .

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

3 - Evil User尝试访问持有被篡改的JWT令牌的受保护路由

4 - 路由保护检查令牌是否过期(通过检查有效载荷中的到期声明?)

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

6 - Route解码JWT,看到JWT没有过期,并且用户具有admin角色并且允许访问邪恶用户的页面并看到呈现的HTML(后端操作是安全的,因为令牌首先得到验证)

我错过了什么吗?我怎样才能防止这种情况发生?我想阻止用户访问该页面,即使它是半工作 .

1 回答

  • 1

    我认为你做对了 .

    为避免此类问题,您可以做的是在用户首次进入管理模块时发出请求,以检查令牌是否有效 . 如果没有,则断开连接或重定向 .

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

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

    如果值已更改,则用户使用其令牌进行播放,您可以重定向他 .

相关问题