【发布时间】:2021-09-21 18:59:19
【问题描述】:
我已经使用 spring、java 和 angular 构建了一个系统。当用户成功登录系统后,后端将获取特定用户的角色列表。然后,我意识到来自服务器的响应可以在到达用户之前修改。因此,用户有可能为自己添加更多角色并执行非法操作。
例如: 用户 A 应该只有查看数据的角色。但是当 API 调用后端获取角色时,用户会截取服务器的响应并添加 modify role 给自己。现在用户可以看到修改按钮并开始修改。
有什么办法可以防止这种情况发生吗?
【问题讨论】:
-
你无法阻止它的发生,所以你必须让它变得无关紧要——服务器应该不信任客户端在发出请求时声称它拥有的角色。您不能依靠禁用 UI 中的按钮来保护您的数据。
-
你可以看看 JSON Web Tokens (JWT),它可能支持类似的东西。您基本上会在令牌的有效负载中发送声明,然后客户端将令牌发送回服务器。但是,在信任 JWT 之前,服务器会对其进行验证,即它使用密钥从令牌创建哈希,并将其与之前创建并发送给客户端的哈希进行比较(并且可能还会在内部存储该哈希)。
-
是的,我已将 Bearer Token 用于身份验证部分
标签: java angular security spring-security