私は this answer を読み、電子メールでパスワードを送信しないことを主張するコメントを見つけました:
パスワードをメールで取得できないようにする必要があります。それは私のパスワードがどこかにプレーンテキストで保存されていることを意味します。リセットするだけです。
これにより、「パスワードを忘れた」オプションの処理に関する質問が生じますか?
ユーザーが読み取れるように、生のパスワードは任意のUIに表示する必要があります。では、「パスワードを忘れた」場合の対処方法を教えてください。
優れたアプリケーション設計では、ユーザーのパスワードを明示的に回復することはできません。これは通常、一方向の操作であるある種のハッシュを実行した後に格納されるためです。
紛失したパスワードを処理する最良の方法は、リセットを実行することです。これは、問題のアカウントの有効なパスワードリセットであることを示す、生成されたパラメーターが付加されたリンクをユーザーアカウントにメールで送信することです。この時点で、新しいパスワードを設定できます。
これは、ユーザーのメールアドレスが登録されていることを前提としています。
ユーザーのメインパスワードをプレーンテキストとして保存する必要はありませんが、一時的なパスワードをプレーンテキストとして保存できます。
ユーザーがパスワードをリセットする->一時的なパスワードが作成される->一時的なパスワードがメールで送信される->ユーザーは次回ログイン時にパスワードの変更を強制される(新しいパスワードは一時的なパスワードにすることはできない)
コメントは、元のパスワードを電子メールで送信することに対するものであり、電子メールで何も送信するものではありません。機関が元のパスワードを送信できる場合、それは彼らがそれを持っていることを意味し、それはセキュリティ上の問題です。ほとんどの場合それがほとんど必要であるので、コメンターはパスワードを電子メールで送ることに反対していませんでした。
適切な方法は、何らかの理由で一度だけ使用できる新しいパスワードを割り当てることです。おそらく、システムによってすでに期限切れとしてマークされている可能性があります。おそらく、ページにログインして、動的に生成されるパスワードを1回だけ変更します。
私が一番気に入っているのは、アプリケーションが、「パスワードの変更」ページを提供するX時間有効な1回限りのリンクを使用して、登録されたメールアドレスでユーザーにメールを送信することです。
ユーザーは、パスワードをメールで送信する危険を冒すことなく、好きなように設定できます。
私のクレジットカードプロバイダーには、「パスワードを忘れた」オプションがあり、セキュリティの質問をいくつかします(これ自体は非常に安全ではありませんが、多くの銀行が行います)。次に、新しいコードを生成し、画面の半分を表示し、残りの半分にメールを送信します君は。そうすれば、ウェブページとメールアドレスの両方にアクセスできなければ、アカウントを破ることはできません。
使いやすさの観点 からこれについて少し質問しました。