【发布时间】:2020-01-03 12:54:18
【问题描述】:
我有一个带有 firebase 身份验证的应用程序。现在我有一个问题,任何拥有有效 jwt 的用户都可以访问任何其他人的用户数据。
例如,我可以使用有效的 jwt 向我的一个端点(即“photos/user/{id}”)发出请求,并将任何 {id} 传递给端点,我将收到该用户的数据。在我的例子中,我们通过系统内的电子邮件识别用户。而且我可以成功地从令牌中检索用户的电子邮件。但主要问题是 - 我现在是否需要将从令牌收到的电子邮件传递给每个服务,所以我可以检查它实际上是令牌所有者试图访问他的数据,而不是其他拥有有效令牌的人。到目前为止,我已经尝试为授权属性创建自定义策略,但是需要处理的案例太多,我想它最终会变得非常脆弱
【问题讨论】:
-
您应该将端点更改为不能接受用户 id 而是从令牌中获取用户 id,这样它将始终只返回链接到令牌的详细信息
标签: c# firebase asp.net-core jwt