【问题标题】:How to have a Javascript client create a secure UUID?如何让 Javascript 客户端创建安全的 UUID?
【发布时间】:2014-09-25 20:51:28
【问题描述】:

Javascript 客户端是否可以创建无法伪造的 UUID?

例如,假设Create GUID / UUID in JavaScript? 的解决方案之一用于生成 UUID 并向服务器发送带有 UUID 的创建请求。服务器是否可以检查 UUID 确实是由 Javascript 函数而不是其他函数创建的?

一个想法是使用校验和,但 UUID 生成和校验和代码将对“黑客”可见。他们可以简单地修改 Javascript 函数,然后添加校验和。

那么,这个问题有什么好的解决办法吗?

【问题讨论】:

  • 听起来像是 X:Y 问题。为什么要关心 UUID 是否由 Javascript 函数创建,如果不是,会发生什么?
  • 我不确定……随机 UUID 是用 Javascript 生成的,这似乎很奇怪,但黑客可以提交他们自己的 UUID。看起来如果客户端要生成它,那么服务器需要一种方法来验证它是否正确生成。
  • 它只是一个标识符,没有特殊的权力或特权,何必担心呢?

标签: javascript guid uuid


【解决方案1】:

您不应该关心是谁创建了 UUID。服务器应该只检查客户端发送的 UUID 是否符合 UUID 格式,并且可能检查是否已经使用了相同的 UUID(这取决于您的需要)。

除非您的 UUID 值被用作机密(例如激活号码)。在这种情况下,不应在客户端生成该值,而服务器应跟踪它生成的值。

【讨论】:

    【解决方案2】:

    您可以进行一些基本的完整性检查,例如长度或格式,但您实际上要问的是“给定一个数字,我可以检查它是由特定的随机数生成器生成的吗?”。如果随机数生成器是真正随机的,那么答案必须是“否”,因为如果我可以轻松地从答案回溯到函数,那么它就不是很随机。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-24
      • 2013-12-05
      • 2018-11-27
      • 1970-01-01
      相关资源
      最近更新 更多