1

パスワードを忘れたページを作成しています。私は読んでいて、多くの情報源は、ユーザーにメールアドレスを入力させることを推奨しています。これにより、DB にトークンが追加され、トークンが GET 変数として添付されたリンクが送信されます。

なぜそのトークンが本当に必要なのか知りたいです。トークンの有効期限が切れていると、悪意を持ってあなたのメールにアクセスした人は、すぐにパスワードを忘れたページに戻ってメールをもう一度入力し、新しいパスワード リセット リンクを取得できます。

誰かがあなたのメールアドレスにアクセスした場合、ある時点で期限切れになるトークンを持っている意味さえありません. 「パスワードを忘れた」ページで期限切れトークンを使用する必要があるのはなぜですか?

4

2 に答える 2

0

逆に質問をすることができます:なぜリセットリンクは永遠に有効でなければならないのですか?

パスワード リセット リンクを要求すると、通常は 1 ~ 2 時間で使用できるようになります。2年後にリンクをクリックできたとしても、おそらくそのようなリセットリンクが存在することさえ覚えていないという利点はありません。また、新しいリンクをリクエストするのは簡単です。

一方、将来、誰かが私の電子メール アカウントにアクセスしたり、何らかの形で私の電子メールのバックアップを取得したりした場合、その人はリセット リンクを使用できます。電子メールを読むことができるからといって、必ずしも電子メール アカウントにログインできるとは限りません。たとえば、オフィスで開いている電子メール クライアント、インターネット カフェでのログアウトの忘れ、携帯電話の紛失などがあります。

トークン自体は、攻撃者が新しいリセット リンクのコードを予測できないことを確認する必要があります。ユーザー名、現在の時刻、電子メール アドレスなどのパラメーターによって生成されたコードではなく、ランダムなコードを使用することをお勧めします。

一般的に言うと、コーディングの作業がそれほど難しくないのに、強力なスキームがあるのに、なぜ弱いスキームを使用するのでしょうか?

于 2013-04-26T07:26:12.547 に答える