用户能够查看自己的 UID 是否存在安全风险?

信息安全 验证 饼干 令牌 jwt
2021-08-31 06:25:32

在使用令牌身份验证系统的 Web 应用程序上工作时,我想知道是否授予用户访问权限以查看他们自己的用户 ID,是否存在安全风险?它不容易被查看,他们必须先散列一些 cookie。

不仅在寻找特定于这个实现的答案,我也只是对此感到好奇。

对于我的具体情况,我将使用 JSON Web 令牌,这意味着客户端可以查看 UID,但由于 JWT 的性质 - 如果修改有效负载,令牌将无效。

在这种情况下,通过知道 UID 的格式来猜测其他人的 UID 并没有帮助,因为只有 uid + 签名形成了一个有效的令牌,因此是一个有效的请求。

2个回答

在您的具体情况下,它似乎不是。但是,一般而言,这取决于您的 UID 的使用方式。如果您的 UID 在系统中的任何位置用作可信信息,并且您的用户可以从他们自己的 UID 中推断出其他 UID,那么您就有问题了。例如,英国公司 Moonpig 几年前发布了这个消息,当时确定他们的用户 ID 是连续的,并且用户的 ID 足以请求用户的私人信息,包括姓名、生日、地址、最后四个信用信用卡和信用卡的有效期。

如果您的 UID 足够随机,那么泄露它们不会降低安全性,因为它们不会向攻击者提供有关其他帐户的额外信息。他们仍然需要手动枚举可能的 UID 空间以找到有效的空间。但是,UID 枚举并不是特别困难,因此敏感事务应始终受到至少另一条私人信息的保护。在您的情况下,第二条信息是签署请求的令牌。

如果 uid 本身不提供对任何内容的访问,那么它根本不重要。只要您只是从后端的 jwt 中检索 uid,就可以了。只是不要在发布请求或查询参数中提交它,并让您的服务器信任它,您会没事的。