3

私のウェブサイトで電子メール認証を行いたいです。

電子メールアドレスを確認するためのリンクを含む電子メールをユーザーに送信する予定です。確認リンクには、次のもので作成されたキーを含める予定です。

str(uuid.uuid4())

確認リンクはしばらくすると期限切れになります。

私の質問:

それは良いアプローチですか?安全、信頼できる?uuid.uuid4() が一意であることを確認する必要がありますか? uuid.uuid4() 値は URL の一部として安全ですか?

4

1 に答える 1

2

それは良いアプローチですか?安全、信頼できる?uuid.uuid4() が一意であることを確認する必要がありますか? uuid.uuid4() 値は URL の一部として安全ですか?

はい、これで電子メールの確認には十分です。

Georg Schöllyによると、

uuid4() が生成する ... ランダムな UUID。衝突の可能性は本当に、本当に、本当に小さいです。小さいので気にしなくていいです。問題は、乱数ジェネレーターが悪いと衝突が発生しやすくなることです。

次にボブ・アマンを引用した人、

率直に言って、悪意のあるアクターのいない単一のアプリケーション空間では、バージョン 4 の UUID でも、1 秒間にかなりの数の UUID を生成しているとしても、衝突が発生するずっと前に地球上のすべての生命が絶滅します。

したがって、これは電子メール検証にとって安全で信頼できると言えます。また、UUID4 が一意であることを確認する必要はありません (ただし、生成時に確認する必要はありません)。また、UUID が 16 進数でエンコードされている限り (正規の形式)、URL の一部であっても安全です。

于 2014-05-17T15:23:45.010 に答える