この問題に関するさまざまな質問を見てきましたが、まだ尋ねられていない質問がいくつかあります。ユーザーがパスワードを忘れた場合、メール アドレスだけでパスワードをリセットできるようにしたいと思います (つまり、セキュリティの質問/回答はありません)。パスワードはソルトハッシュとして保存されるため、復元することはできません。代わりに、ユーザーがリセットを要求したことを確認した後、新しいパスワードを入力してもらいたいだけです。
言及されている一般的な方法は、単純に次のとおりです。
1) ランダムな Guid/暗号的に強力な乱数を作成する
2) 乱数を含む一意の URL をユーザーの電子メール アドレスに送信します。
3) 確認されると、ユーザーはパスワードの変更を求められます
しかし、これはMITM
攻撃にさらされていませんか? 一時的なパスワードをインターネット経由で電子メールに送信することが安全でない場合、それを行うことと、攻撃者がナビゲートできる一意の URL を単に送信することの違いは何ですか? このシステムをより安全にする重要なステップをどこかで見逃していませんか (または、パスワードをリセットするためのより良い方法はありますか)?
ありがとう