ウェブサイトでパスワードを忘れた場合の機能を作成するための最良の方法は何でしょうか。私はそこにかなりの数を見てきました、ここにいくつかまたは組み合わせがあります:
パスワードを忘れた場合の機能に、どのような組み合わせまたは追加の手順を追加しますか?彼らがどのようにして新しいパスワードを要求し、どのようにしてそれを取得するのか疑問に思っています。
パスワードを取得できないというプリンシパルを操作しています。新しいパスワードを指定/生成する必要があります。
編集ユーザー名が存在する場合は表示しないというCoryの発言は気に入っていますが、代わりに何を表示するのか疑問に思っています。問題の半分は、ユーザーが使用したメールアドレスを忘れてしまったことだと思います。これは、ある種の「存在しません」というメッセージを表示すると便利です。解決策はありますか?
オプション1ははるかに簡単です。
いくつかの重要なセキュリティ上の懸念:
詳細については、 Webアプリケーションハッカーハンドブック を確認してください。これは、安全な認証モデルの作成に関する優れた読み物です。
[〜#〜]編集[〜#〜]:編集の質問について-私は提案します:
「指定したアドレスにパスワードリクエストメールが送信されました。メールがすぐに届かない場合は、スパムフォルダを確認してください。メールが届かない場合は、指定したメールのアカウントがありません。」
ここでは、使いやすさとセキュリティの間でトレードオフが行われています。コンテキストに基づいてこれのバランスを取る必要があります-セキュリティは、この不便を正当化するためにあなたとあなたのユーザーにとって十分に重要ですか?
新しいパスワードでメールを送信します。
到着時にパスワードを強制的に変更し、新しいパスワードを入力します。
これにより、パスワードを必要とする人だけがアカウントにアクセスできるようになります。
電子メールが盗聴された場合、誰かがアカウントに侵入する可能性がありますが(もちろん)、実際の関係者はすぐにこれを発見します(送信したばかりのパスワードは機能しないため)。
また、パスワード変更の確認をユーザーに送信します。
誰かが新しいパスワードを取得し、「パスワードを変更してくれてありがとう」というメールを受け取った場合、彼らはかなり戸惑い、それをしなかった場合は管理者に相談します。
電子メールの確認/パスワードのリセットリンクを使用すると、セキュリティが向上します。これを見てみると、ほとんどのWebサイトがそれを行っており、人々はこの検証にかなり慣れているので、このタイプの認証を使用することをお勧めします。
(gbrandtの)オプション2は、ユーザーが既に持っている個人情報と組み合わせると、優れた方法になると思います。つまり、生年月日です。
ユーザーが自分の電子メールアドレスを入力して新しいパスワード(リセット)を要求する場合、パスワードがリセットされて新しいパスワードがユーザーに電子メールで送信される前に、正しい生年月日(またはその他の日付)も入力する必要があります。
彼をよく知っている人だけが、彼のパスワードをリセットすることで彼を悩ませることができるでしょう!見知らぬ人やボットになることはできません
5つまたは7つの間違った電子メールアドレスと生年月日の組み合わせで、ユーザーはパスワードのリセットが要求され、資格情報が正しくないために失敗したことを電子メールで送信されます。その後、そのアカウントのパスワードのリセットは24時間または任意の期間停止されます。
(このメールに関してあまりにも多くのユーザーがwebadminに連絡すると、誰かがあなたのWebサイト/アプリから悪意を持って情報を取得しようとしていることがわかります)
皆さんはどう思いますか?
オプション1はnot良い考えです。一般的に、彼は他の人が簡単に推測できるようになるからです。サラペイリンの個人的な電子メール(Yahooだと思います)は、この方法で第三者によってハッキングされました。
他のオプションの方が優れており、以前の投稿で詳細を概説しています。