0

ユーザーのメール アドレスにパスワード リセット ページへのリンクを含むメールを送信した場合、そのリンクを認証するにはどうすればよいですか? ランダムに生成されたキーをデータベースに保存してから、リンク文字列に追加する必要がありますか? www.mydomain.com/passwordreset.html?key=abcd1234zz235次に、このキーをデータベースに保存されているキーと照合しますか?

これが本当に正しいアプローチである場合、これらのキーを対応する電子メールと共に保存するために別のテーブルを作成する必要がありますか? その答えが「はい」の場合、データベースのスペースを節約するために、ユーザーがパスワードをリセットした後にこれらのキーを削除する必要がありますか?

前もって感謝します!

4

4 に答える 4

1

これらのキーと対応する電子メールを格納するために別のテーブルを作成する必要がありますか?

はい、そうします。

その答えが「はい」の場合、データベースのスペースを節約するために、ユーザーがパスワードをリセットした後にこれらのキーを削除する必要がありますか?

スペースのためではなく、トランザクションが終了したためです。

ここでスペースを節約することはできません。監査ログにパスワード変更イベントのログ エントリを保持する必要があるためです。

于 2012-10-06T23:47:54.590 に答える
1

それはそれを処理するかなり典型的な方法です。PasswordResetKey通常、テーブルにフィールドを追加しuserます。

于 2012-10-06T23:33:34.037 に答える
0

このリンクを見てください。役立つかもしれません。基本的に、パスワード リセット リクエスト用のテーブルを作成し、ユーザーを識別するキーとリセット リクエスト自体を生成する必要があります。

于 2012-10-06T23:40:33.817 に答える
0

はい、それはうまくいきます。個人的には、キーをユーザー データに基づいてエンコードされた文字列にして、デコードできるようにしたいと考えています。たとえば、文字列を取得しuserid|password_hash|emailaddress、エンコードして送信します。次に、それを受け取ったら、デコードしてパーツを分割します。ユーザー ID はデータベースの検索に使用され、次に password_hash と電子メールが検証され、すべてチェックアウトされたら続行できます。

そうは言っても、リセットが実際に要求されたかどうかを知っていることを意味するため、おそらくあなたのソリューションの方が優れています。最終的に重要なのは、推測するのが難しくなったということだけです。

于 2012-10-06T23:34:39.297 に答える