如何通过二维码将密钥传递给 URL?

How do I pass secret key to URL via a QR-code?

我正在寻找一种安全的方式来在用户扫描 QR 码 并转到我的 url。这个密钥是连接到我的一个产品(智能扬声器)的密钥。如果密钥有效,用户将被要求登录或注册以将他们的帐户与我网页上的产品相关联。 然而,经过我的研究,QR 码仅传递 url 中可见的数据。即使密钥被加密,这也会带来安全问题:用户输入相邻值的问题,密钥会保存在浏览器历史记录中(这意味着恶意代码可能会扫过用户的浏览历史记录并提取密码、令牌等)。它们可能保存在我服务器的日志和内存中,...。 有没有更安全的方法通过二维码将秘密信息传递给 url?

长话短说 - 没有。人们通常会将秘密作为 headers 或在 body 或请求中传递,但是使用 QR 码时您没有这种灵活性。

在不完全了解您的业务需求的情况下,我会尝试通过以下方式解决问题。

  1. 将秘密嵌入 url。将其编码为二维码。将编码隐藏在产品包装中,供客户购买并打开产品后查找。
  2. 使用 url 后,将用户重定向到一个页面以创建一些凭据或使用一些联合协议来创建帐户。
  3. 创建帐户后,将 url 的秘密标记为无效。

你可以将秘密数据放在URL的片段部分(在#之后)然后它不会被发送到服务器,但可以被[=13=读取] 在网页中。