2

重複の可能性:
パスワードを忘れた: パスワードを忘れた機能を実装する最良の方法は何ですか?

Web アプリケーションの忘れたパスワードを実装しています。ユーザーには、新しいパスワードを入力するための Web ページへのリンクが記載されたメールが送信されます。リンクが作成されてから最大 24 時間にリンクの有効性を制限したいと思います。これをどのように実装すればよいですか?同じリンクが再利用されないように、またはリンクを変更して再利用できないようにするには、このパラメーターをどのように生成すればよいですか?

これが役立つかどうかはわかりませんが、Spring 3.1 フレームワークを使用しています。

4

4 に答える 4

1

このようなタイプの機能については、タイム スタンプ ベースのランダム トークンを作成し、それをパスワードを忘れた場合のリンクと共に送信する必要があります。以下の手順に従う必要があります。

  1. ユーザーがパスワードを忘れたときにランダムなトークンを作成し、有効期限とともにDBに保存します。
  2. トークンが埋め込まれたリンクを電子メールでユーザーに送信します。
  3. ユーザーが最初にリンクにアクセスしたときにトークンの有効期限を確認し、有効期限が切れている場合はユーザーにメッセージを表示できます。
  4. トークンの有効期限が切れていない場合、ユーザーはパスワードを変更でき、トークンの状態を無効に設定できます。

より安全にするために、リンクが有効なユーザーからのものであり、ハッキングされていないことを確認するための手順をさらに作成できます。

于 2012-09-30T07:56:20.203 に答える
0

一般的なアプローチは、生成された ID を URL に含めることです。その ID は、作成日または有効期限のいずれかの日付とともにデータベースに保持されます。このようにして、期限切れの ID をクリアするバックグラウンド タスクを作成できます。

于 2012-09-30T07:56:39.653 に答える
0

私がすることは次のとおりです。

  • 有効期限が現在 + 24 時間のユーザー パスワード (ランダム値) をリセットします
  • 「パスワードの変更」ページへのリンクを含む新しいパスワードをユーザーに送信します

利点:

  • 春のセキュリティは有効期限を処理します
  • 「パスワードの変更」ページへのリンクを「盗んだ」場合、何の価値もありません。ユーザーは、現在のパスワードと新しいパスワードを (2 回) 入力する必要があります。
于 2012-09-30T07:57:02.450 に答える
0
  1. ユーザーが新しいパスワードを要求したら、たとえば を使用して、ランダムなトークンを生成しますRandomStringUtils.randomAlphanumeric(int)。このトークンを、パスワードのリセットを要求したユーザー ID に関連付けられたデータベースに保管します。作成時のタイムスタンプも保存します。

  2. リンクを電子メールでユーザーに送信します。このリンクには、作成したばかりのトークンが URL の一部として含まれている必要があります。

  3. ユーザーがこのリンクを入力すると、新しいパスワードの入力を求められます。リンクが漏れているのではないかと心配な場合は、個人情報 (メールアドレス、名など) についても尋ねてください。

  4. サーバー側では、次のことを行います。

    1. トークンと、そのトークンに関連付けられているユーザー ID を見つけます

    2. 現在の日付を比較して、トークンがまだ有効であることを確認します

    3. 新しいパスワードをハッシュして保存

于 2012-09-30T07:57:53.343 に答える