【问题标题】:Is it safe to send user id to front end in plain text?以纯文本形式将用户 ID 发送到前端是否安全?
【发布时间】:2021-07-23 01:13:54
【问题描述】:

我有一个带有 MongoDB 的快速应用程序。它为每个用户文档创建一个用户 ID。此用户 ID 也以 jwt 编码,这给新开发人员造成了一种错觉,即用户 ID 不能以纯文本形式发送到前端。

有人可以解释将用户 ID 发送到前端会如何产生安全问题吗?据我所知,没有我的秘密字符串,黑客无法用它创建 jwt。我的快速应用程序都不会在后端的任何地方侦听此用户 ID。但它对前端至关重要,因为它被用作卖家 ID。

【问题讨论】:

    标签: javascript mongodb express security jwt


    【解决方案1】:

    我不认为这是安全风险,只是在编写服务器代码时更容易管理。如果您已经通过 JWT 处理登录身份验证,并且客户端代码没有理由关心用户 ID,但服务器确实需要知道它,那么您不妨将所有内容嵌入到 JWT 中,而不是让两个 JWT 用于身份验证信息并分别通过其他方法管理用户 ID 的通信。

    【讨论】:

    • 为什么要在 JWT 中嵌入所有内容?前端无法将 jwt 作为其 httpOnly 访问。如果我们想在前端访问用户 ID,则必须以纯文本单独发送。我在用户登录时发送整个用户文档
    • 如果你想让一些东西被客户端使用,当然不要使用JWT。如果您已经在使用 JWT 进行身份验证,并且 服务器 有关于每个设备的附加信息会很好,并且客户端不需要知道它,它会与创建完全不同的通信方式相比,添加到现有的 JWT 通常更容易。
    • 我不明白你在说什么。我的服务器将用户文档发送到前端,包括仅供前端使用的用户 ID。例如:在产品页面中提供卖家链接。
    • 就像我说的,如果前端需要使用用户ID,那么当然不要使用JWT,因为那是行不通的。如果客户需要信息,以其他方式将其发送给客户绝对没有错 - 在您的情况下,它确实需要。
    • 但为了验证用户身份验证,我的服务器仅使用编码的用户 ID。它不会侦听任何请求中发送到前端的纯文本用户 ID。所以我认为将用户 ID 发送到前端没有安全风险
    猜你喜欢
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    • 2015-04-15
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    • 2018-12-03
    • 2015-09-19
    相关资源
    最近更新 更多