3

GUIDは理論的には一意であり、衝突の可能性は非常に低いことを私は知っています。ただし、正しく理解していれば、使用しているアルゴリズムに応じて、生成に使用したコンピューター上の情報からシードされているため、その一意性の一部を利用できます。

GUIDが与えられた場合、ユーザーがテーブル内の他のGUIDを推測できる可能性はどのくらいありますか?

例として、購読解除機能を備えたニュースレター購読者がいる場合は、example.com /subscriber / unsubscribe/{id}に投稿するだけです。

整数のアイデンティティでは、これは明らかに悪い考えです。ID 1000のユーザーは、IDを推測することで、データベース全体を数秒で登録解除できます。

ID列がnewid()に初期化されたGUIDである場合、ユーザーが自分のIDを知っていれば、正しいIDを推測できる可能性はどのくらいありますか?

4

2 に答える 2

3

理論的には可能かもしれませんが、実際に起こる可能性は非常に低いと思います。

SLaks が彼のコメントにリンクしている Eric Lippert のブログ投稿と、Stack Overflow に関するその他の回答を読みました。

私が理解している限りでは、いくつかの GUID のセットがあれば、それらが同じマシンで生成されたかどうかを確認できる可能性があります。しかし、それを見つけるのは簡単ではなく、平均的なユーザーにとっては確かにそうではありません.

ここで、GUID (例のニュースレター購読 ID) が1 つだけ与えられた場合、他の GUID を推測するのは非常に難しいと思います。
それが実際に可能である場合に限り、おそらく高速なマシンと、GUID の作成に使用されるアルゴリズムに関する深い知識が必要です。

最後に、コンテキストを確認する必要があります
。GUID を推測できたとしても (推測できるかどうかはわかりませんが、推測できなかった違いありません)、誰かが推測できるとは思えません。あなたのニュースレターから他の人を購読解除するために、実際にこれを行います。

于 2012-05-17T14:23:00.767 に答える