Django を使用して Web アプリケーションを開発しています。
現在、「パスワードのリセットリンク」をメールで送信する作業を行っています (Amazon シンプルメールサービス - SES) 。
私が使用したメカニズムは、リンクの下の「simeonwillbanks」の回答と同じです
パスワードをリセットする、または古いパスワードを提供する安全な方法
- ユーザーにパスワードのリセット オプションを提供します。
- このオプションは、ユーザーの一意のトークンを保存します。トークンは最終的に期限切れになります (時間、日、または日)。
- トークンを含むリンクがユーザーに電子メールで送信されます。
- ユーザーが電子メールで送信されたリンクをクリックします。
- トークンが存在し、有効期限が切れていない場合、リンクは新しいパスワード フォームを読み込みます。そうでない場合は、新しいパスワード フォームを読み込まないでください。
- ユーザーが新しいパスワードを設定したら、トークンを削除し、確認メールをユーザーに送信します。
これについて私が心配しているのは、この方法がセキュリティの面で安全かどうかわかりません。電子メールがハッカーによってキャプチャされた場合はどうなりますか?
私はいくつかの主要な Web サイトで、彼らがこれをどのように気にかけているかをテストしました。
- 「パスワードのリセット」メールを受け取り、リンクをコピーします。
- 他の人にリンクを渡して、彼が私のアカウントのパスワードを変更できるかどうかを確認してください。
このテストから、他の誰かもリンクだけで私のパスワードを変更できることがわかりました。
リンクで何もできない場合、電子メールをより安全にする方法はありますか? Web サイトの ssl(https) の仕組みとしては?
ありがとう!