ホームページ > バックエンド開発 > PHPチュートリアル > メールによるパスワード取得について

メールによるパスワード取得について

WBOY
リリース: 2016-07-06 13:52:38
オリジナル
1311 人が閲覧しました

電子メールによるパスワードの取得について、それを実装するための一般的なアイデアは何ですか?
ありがとうございます

返信内容:

電子メールによるパスワードの取得について、それを実装するための一般的なアイデアは何ですか?
ありがとうございます

あなたの質問は非常に簡潔ですが、幅広いトピックをカバーしています。

多くの安全上の問題が関係しており、注意しないと危険な要素が存在する可能性があります。

まず最初に、教科書レベルの OWASP パスワード回復設計ガイドを提供します:
https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet

次に、他の人の間違いを参考にして、同様の危険なデザインがあるかどうかを確認してください:

  1. パスワード取得ロジックの脆弱性の概要:
    http://drops.wooyun.org/web/5048

  2. パスワード取得機能で考えられる問題
    http://drops.wooyun.org/papers/287

  3. パスワード取得機能で考えられる問題(補足)
    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 つの情報を処理してトークンを生成するキーを含む可逆暗号化関数を見つけるだけです。


私のアイデアの 1 つは、redis とデータベースの使用を必要とせず、ユーザーのパスワード取得のハッシュを個別に保存する必要もありません。

上記で誰かが述べた方法では、大規模なビジネスでは複数の独立した Redis サーバーを構築する必要があり、少し高価です。

私のアイデアは

    初回使用
  1. md5 (ユーザーのメールアドレス、現在のタイムスタンプ、秘密鍵) + ユーザーのメールアドレスのクリアテキスト、現在のタイムスタンプのクリアテキスト`

    リーリー
プロセス全体の秘密鍵はサーバーサイドスクリプト内にあるため、漏洩しない限りシステムは安全です

理論的にはプロセス全体に問題はありません。

上記の誰もがそれをより適切に述べています

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート