電子メールによるパスワードの取得について、それを実装するための一般的なアイデアは何ですか?
ありがとうございます
電子メールによるパスワードの取得について、それを実装するための一般的なアイデアは何ですか?
ありがとうございます
あなたの質問は非常に簡潔ですが、幅広いトピックをカバーしています。
多くの安全上の問題が関係しており、注意しないと危険な要素が存在する可能性があります。
まず最初に、教科書レベルの OWASP パスワード回復設計ガイドを提供します:
https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet
次に、他の人の間違いを参考にして、同様の危険なデザインがあるかどうかを確認してください:
パスワード取得ロジックの脆弱性の概要:
http://drops.wooyun.org/web/5048
パスワード取得機能で考えられる問題
http://drops.wooyun.org/papers/287
パスワード取得機能で考えられる問題(補足)
http://drops.wooyun.org/web/3295
最初に私の考えを述べておきます:
1. ユーザーは電子メール アドレスを入力し、データベースにアクセスしてその電子メール アドレスが存在するかどうかを確認します。
2. 存在する場合は、www.a などのルーティング接続がすぐに生成されます。 com/lost/passport/key/bac.html
3.key=>bac bac は、何らかの計算によって生成された一意のハッシュ値であり、redis などのキャッシュ システムに配置され、24 時間または 2 日間有効です。この接続はメールボックスに送信され、ユーザーはリンクをクリックしてパスワード取得メソッドを実行します
4. パスワードを取得するときの最初のステップは、キーのハッシュ値が Redis キャッシュに存在するかどうかを確認してから実行することです。アップデートしてパスワードをリセットしてください。
これら 2 つの情報を処理してトークンを生成するキーを含む可逆暗号化関数を見つけるだけです。
上記で誰かが述べた方法では、大規模なビジネスでは複数の独立した Redis サーバーを構築する必要があり、少し高価です。
私のアイデアは
md5 (ユーザーのメールアドレス、現在のタイムスタンプ、秘密鍵) + ユーザーのメールアドレスのクリアテキスト、現在のタイムスタンプのクリアテキスト`
理論的にはプロセス全体に問題はありません。
上記の誰もがそれをより適切に述べています