2016-03-23 11 views
1

Eclipse EEを使用してWebアプリケーションを実行しています。私はユーザーのパスワードをリセットするはずのモジュールを持っていて、パスワードをリセットできるページへのリンクをユーザーに(電子メールで)送信します。すべての洞察をお願いしますか?メールでパスワードをリセットする

答えて

1

主な手順は次のようになります。

  1. は「忘れてしまったパスワード」を提供し、ユーザーが自分のメールアドレス
  2. を入力することができますページには、入力されたアドレスを調べるが、ユーザーが任意の詳細を教えていません。悪意のあるユーザーが有効な電子メールアドレスを検索できるようにするため、「電子メールアドレスが見つかりません」のようなメッセージを出力しないでください。 「入力したメールアドレスが登録されている場合は、パスワードをリセットするリンクが表示されます」などのメッセージを表示してください。
  3. 強力な一意のランダム識別子を作成して、そのリセット要求に関連付けます。例えば。フレームワークによって提供される暗号方式のRNGを使用し、例えば、 GUID。
  4. その一意の識別子をそのリセット要求と一緒に、たとえば次のように格納します。あなたのデータベースのテーブルとそのレコードにタイムスタンプを入れてください。一定の時間枠内でのみパスワードをリセットできるようにするために重要です。
  5. アプリケーションへのリンクにクエリパラメータとして指定した一意の識別子を持つ電子メールを送信します。例えば。 https://yourapp.com/pwreset/?requestID=7392af1747ce3781
  6. pwreset-controllerにrequestIDパラメータを追加し、データベースでそれを調べます。要求が最初の要求タイムスタンプに基づいて妥当な時間枠内に入った場合は、ユーザーにパスワードをリセットさせます。
  7. 送信されたpwリセットリンクが1回しか使用できないように、データベースから正常な要求レコードを削除します。また、期限切れのレコードを定期的に削除します。

これを出発点として使用してください。私は暗号のエキスパートではないので、あなたはこのアプローチを見るかもしれません;)

+0

ありがとう。それに取り組む。 –

関連する問題