我正在为一家商店制作一个小网站,它几乎是一个着陆页。没有客户账户系统。该网站有一个查看订单详情的页面,该页面仅供下订单的人查看。所以我需要一种方法来验证对该页面的请求。
我决定应用这个系统来授权访问订单信息:
这个想法安全吗?将密钥放在 URL 路径中安全吗?我将使用密码安全的随机数生成器来生成密钥,我该怎么做才能快速生成唯一密钥,而无需重复生成密钥并对照数据库检查每个密钥,直到找到未占用的密钥?
您可以生成一个 UUID,这是确保它唯一的好方法(它有 128 位长,因此生成重复项的可能性极小)。我不确定您使用的是哪种服务器端语言,但您应该能够使用现有的库来生成这些 UUID。 出于您的目的,我认为将唯一标识符放在 URL 的查询字符串(而不是路径参数)中是可以的。 我还建议尽量减少您可以在订单页面上查看的敏感信息的数量,例如付款明细。