3

ユーザーが登録すると、それを確認するためのリンクが記載された電子メールを受け取るように、電子メールの確認登録を行いたいです。リンクは次のようなものwww.site.com/confirm?id=34398df809as8df9であり、それを標準の aspnet メンバーシップ プロバイダーからのデータベース内の UserId と照合します。電子メールに渡される GUID として UserId を使用すると、何らかの脆弱性やセキュリティ上の脅威が生じますか?

4

3 に答える 3

7

GUID はリンク内の唯一の考えですか? もしそうなら、それは絶対に安全ではありません。これは、攻撃者が誰かの ID を取得すると (古い電子メールを見つけるなどして)、いつでもユーザーのパスワードをリセットできることを意味します。

パスワード リセット リンクには、少なくとも 1 回限りの期限付​​きトークンを含める必要があります。

于 2012-08-10T06:26:28.140 に答える
4

システムの外に出るものには、データベースの主キーを絶対に使用しません。登録ループ専用のワンタイム キーを作成し、登録が完了したら無効にします。

于 2012-08-10T06:27:38.823 に答える
1

私の意見では、それは安全ではなく、悪用される可能性があります (非常に簡単ではありませんが..!)。電子メールの送信時刻が埋め込まれたタイムスタンプが添付された確認リンクが添付され、user_id の計算されたハッシュと単一の文字列のタイムスタンプが含まれるカスタム ロジックで暗号化され、必要に応じて追加のものが含まれている必要があります。

タイムスタンプを追加すると、この確認リンクを 24 時間または 48 時間以内に使用する必要がある、または新しいものを生成する必要があるという検証を追加できます。

あなた次第ですが、単純な Guid は良い考えではありません。

于 2012-08-10T06:28:42.833 に答える