私の理解が正しければ、電子メールでパスワードを送信する際の最大の問題は、パスワードをデータベースに平文で保存する必要があることです。DB が侵害された場合、攻撃者はすべてのアカウントにアクセスできます。
この問題の回避策はありますか?
ユーザーにパスワードを電子メールで送信する方法を、できるだけ安全にするにはどうすればよいでしょうか?
私の理解が正しければ、電子メールでパスワードを送信する際の最大の問題は、パスワードをデータベースに平文で保存する必要があることです。DB が侵害された場合、攻撃者はすべてのアカウントにアクセスできます。
この問題の回避策はありますか?
ユーザーにパスワードを電子メールで送信する方法を、できるだけ安全にするにはどうすればよいでしょうか?
簡単な答えは次のとおりです。データベースが安全ではないと思われる場合、電子メールははるかに安全ではありません。
登録時にパスワードを送信する場合は、パスワードをデータベースに保存する前に送信できます。
彼らが登録した後のことを意味している場合、唯一のオプションは、プレーンテキストで保存するか (繰り返しますが、これを行わないでください)、新しいランダムなパスワードを作成して送信することです。ハッシュからパスワードを取得することは不可能であるため、パスワード ストレージがより安全になります。最良のオプションは、送信する新しい (一時的な) パスワードを生成するか、パスワード変更システムへのアクセスを許可するトークンを生成することです。
ソルトを含むBCryptのような優れたハッシュ アルゴリズムを検討することをお勧めします。
私の提案があなたのシナリオで実現可能かどうかはわかりませんが、データをハッシュまたは暗号化して、プレーンテキストのパスワードではなくパスワード リセット リンクを送信することをお勧めします。
データベース内のすべてのパスワードをハッシュする必要があります。
sha1($_POST['password'].$salt.$username);
ユーザーは、「user_meta」テーブルで生成されたハッシュを含むパスワード リセット リンクを要求します。ユーザーがこのリンクを受け取ると、ハッシュがデータベース内のハッシュと比較され、ユーザーは現在のパスワードを新しいパスワードで更新できるようになります。
パスワードの PTXT が公開されることはありません。
ハッシュのみを比較します。
パスワードが電子メールでクリアテキストになった時点で、本質的に安全ではありません。
そのため、パスワードを平文で安全に送信する安全な方法はありません。
データベースにパスワードを平文で保存するべきではありません - 塩漬けハッシュを使用する必要があります。ユーザーがパスワードを入力すると、それをソルトでハッシュし、保存されているハッシュと比較します。
ユーザーがパスワードを忘れた場合、メールでパスワードを送信する代わりに、期限切れのトークンでバックアップされたリセットリンクを送信する必要があります。これらは、一時的な新しいパスワードを生成します (数分以内に期限切れになります)。
はい、一般的な回避策があります。
データベースにユーザーがいると仮定します。
GUID などの「キー」情報を含む「パスワード リセット リンク」を送信します。リンクの例は次のフォームです。
http://your.site.com/setpassword?id=5b070092-4be8-4f4d-9952-1b915837d10f
データベースには、送信された GUID と電子メールの間のマッピングを保存します。
誰かがあなたのリンクを開いたときに、データベースをチェックすると、誰がそのページを要求したかがわかります。これは、有効な GUID が電子メールにマップされているためです。その後、電子メールが侵害されていないと仮定して、ユーザーにパスワードを安全に変更させることができます。
パスワードを保存しようとしているときは、プレーンテキストで保存することは決してなく、常にパスワードをハッシュし、追加のランダムソルトを使用して、誰かがデータベースに侵入したときに辞書攻撃をより困難にします.
パスワードを電子メールでクリアテキストでユーザーに送信し、それらのパスワードをハッシュまたはその他の形式でデータベースに保存する場合。できるようになる…………
ただ、いくつかの簡単な方法に従う必要があります....
1 .これらのパスワードを、ユーザーから送信される変数として取得する必要があります。
2.データベースを保存するときは、必要な形式に変換するだけです。
3.しかし、それらをメールでユーザーに送信すると、その時はそれらの可変パスワードが送信されました...
WAY についてのコンセプトを構築するのに役立つと思います.......