如何让Javascript客户端创建安全的UUID?

如何让Javascript客户端创建安全的UUID?,javascript,guid,uuid,Javascript,Guid,Uuid,Javascript客户端是否可以创建一个不能伪造的UUID 例如,假设使用中的一个解决方案生成UUID并向服务器发送带有UUID的create请求。服务器是否可以检查UUID是否确实是由Javascript函数而不是其他函数创建的 一个想法是使用校验和,但UUID生成和校验和代码将对“黑客”可见。他们可以简单地修改Javascript函数,然后添加校验和 那么,这个问题有什么好的解决方案吗?您不应该关心是谁创建了UUID。服务器应该只检查客户端发送的UUID是否遵守UUID格式,或者检查是否已

Javascript客户端是否可以创建一个不能伪造的UUID

例如,假设使用中的一个解决方案生成UUID并向服务器发送带有UUID的create请求。服务器是否可以检查UUID是否确实是由Javascript函数而不是其他函数创建的

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


那么,这个问题有什么好的解决方案吗?

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


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

您可以进行一些基本的健全性检查,如长度或格式,但您实际要问的是“给定一个数字,我可以检查它是由特定的随机数生成器生成的吗?”。如果随机数生成器真的是随机的,那么答案必须是“否”,因为如果我可以很容易地从答案返回函数,那么它就不是非常随机的。

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