1

パスワードを忘れた場合のページを実装する必要がありますが、パスワードがソルトされてハッシュ化されています。そのため、従来の方法では取得できません。私の考えは次のことをすることでした:

  • ユーザーが[パスワードを忘れた場合]リンクをクリックすると、当然、自分の電子メールアドレス(ユーザー名でもある)を入力する必要があります。

  • 彼らのパスワードは、私が作成したハッシュとソルトのパスワードにリセットされます。次に、新しいパスワードを入力できる新しいページへのリンクを含むメールを送信します。

  • リンクには、認証のみを目的とした新しいハッシュおよびソルトパスワード($ _GET変数として)が含まれています。

  • リンクから$_GET変数を取得し、DBのエントリに対して認証し、新しいパスワードをハッシュしてソルトし、dbに挿入します。

これはどれくらい安全ですか?スパマーやブルートフォース攻撃者の標的になりにくいサイトの場合。

前もって感謝します。

4

5 に答える 5

6

これは問題ないようです。ただし、より頻繁なサイトでの完全なセキュリティのためには、わずかに異なる方法を検討する価値があります。

  • ユーザーに通常どおり電子メールアドレスを入力してもらいます

  • 2番目のパスワードフィールドに、作成して送信するランダムなパスワードを入力します

  • 2番目のパスワードが生成された日時を追加の列に入力します

  • ユーザーが24時間以内に応答しない(つまり、新しいパスワードでログインする)場合は、2番目の列からパスワードを削除します

新しいパスワードを記載した電子メールで、新しいパスワードを要求しなかった場合は無視できることをユーザーに説明します。

このように、ユーザーの電子メールアドレスを入力するサードパーティは、パスワードを完全にリセットすることによって、自分のアカウントからユーザーをブロックすることはできません。

于 2011-03-08T16:46:24.537 に答える
0

ユーザーのアカウントのセキュリティを電子メール アカウントのセキュリティに外部化しているため、Yahoo/Hotmail/Gmail のパスワードが「password」の場合、強力なパスワード制限を適用し、誰かがユーザーの電子メールをハッキングしてサイトに侵入する可能性があります。アカウント。

そうは言っても、あなたの基本的な設定は適切です - スパマーがフォームを叩く心配はありません - ユーザー提供のテキストをフォームに入れないようにする限り、それをスパムする意味はありません -タイムシェアのロシアの花嫁のためのペニスの丸薬は、特別オファーを通過しません. 愚かなボットがフォームを叩き始めた場合は、いつでもリミッターを設定して、未解決のパスワード リセット メールが X 分ごとに 1 件しか送信されないようにすることができます。

于 2011-03-08T16:49:29.713 に答える
0

適切なハッシュ アルゴリズムを使用している限り (md5 は壊れており、暗号化の目的で使用しないでください)。sha1 を使用すると、これは業界標準のように聞こえます。私は通常、ソルトしてランダムなパスワードを持ち、変数を取得してリンクに送信するだけです。ユーザーが新しいパスワードを知ったり、コピー/貼り付けたりする必要はありません。

また、このキーを生成するためにパスワードをリセットしません。パスワードを 1 回限りの認証コードとして設定し、リセットを要求したのがユーザーではない場合、電子メールでパスワードを見つけたり、パスワードを要求したりする必要がないようにします。自分自身をリセットします。

于 2011-03-08T16:52:14.803 に答える
0

通常、生のランダムに生成された新しいパスワードを送信したいだけです。リセット ページに移動し、新しいパスワードを入力します。

メールでそれを表示する必要があるため、アカウントを所有していることを確認できます (そのメールを使用するユーザーがいるかどうかを確認した後)。

次に、$_GET のリセット コードに別のランダムな文字列 (パスワードではない) を含めることができます。ユーザーは、送信した生成されたパスワードと新しいパスワードを (確認付きで) 入力するようになります。

于 2011-03-08T16:52:18.173 に答える