Webサイトのログインフォームにアクセスし、間違った認証情報を入力すると、Webサイトから次の3つのエラーメッセージのいずれかが表示されることがあります。
メールが間違っています
パスワードが間違っています
あなたの電子メールまたはパスワードが間違っています
私は read を使用すると、悪意のあるユーザーがログインフォームを使用してデータベースに既に存在するメールを見つけることができなくなるため、3番目のエラーメッセージのみを表示するのが最も安全です。その情報を大規模に知ることができれば、メールアドレスをスパマーに売り飛ばしたり、それらのユーザーとしてログインを試みたりすることができます。
ログインフォームに加えて、有効な電子メールを発見する一般的な方法が2つあります。
ウェブサイトのパスワードを忘れた場合のフォームを使用すると、メールアドレスを入力して、パスワードリセットリンクをメールアドレスに送信できます。フォームに存在しないメールを入力すると、Webサイトから次の2つのメッセージのいずれかが表示されます。
そのメールは存在しません
パスワードリセットリンクがメールアドレスに送信されました(存在する場合)
同じ理由で、ここでのセキュリティのベストプラクティスは、そのメールが存在しない場合でも2番目のメッセージのみを表示することです。
ユーザーアカウント登録フォームを使用すると、Webサイトに新しいアカウントを作成できます。メールアドレスやパスワードなど、いくつかの情報を入力する必要があります。
別のアカウントで既に使用されているメールアドレスでサインアップしようとすると、Webサイトはそのメールアドレスが既に使用されていることを通知します。
Stack Exchange を含む多くの大規模なWebサイトは、上記と同じ問題を引き起こしますが、そのようにします。
これが私の問題です、どちらもその問題に関連しています:
他のユーザーのメールアドレスを漏らさずにWebサイトでユーザーが登録できるようにするにはどうすればよいですか?
登録フォームにこの問題がある場合、ログインフォームとパスワードを忘れた場合のフォームを正しく処理するメリットはありますか?言い換えれば、すでに登録フォームから全員の電子メールアドレスを取得できる場合、他の2つのフォームの保護はエンドユーザーにとって無意味な迷惑ではないでしょうか。
あなたが説明する電子メールの収集シナリオは本当に遅く、起こりそうにない、少なくとも多くの電子メールアドレスを収集する方法として。攻撃者は非常に長い文字列をフォームに対してブルートフォースする必要があります。 symcbeanですでに述べたように、電子メールを購入するとすでに非常に安価であり、誰かがこのフォームを繰り返し使用しようとすると、そのような試みをブロックするのはかなり簡単です。
電子メールを収集する標準的な方法は、ドメイン(たとえば会社)に関連付けられたすべてのメールをすばやく収集するために theharvester のようなツールを使用することです。
password resetの場合、自分で質問の一部にすでに回答しているので、常に中立的なフィードバックを返し、必要に応じてブロックメカニズムを実装する必要があります。登録/リセットの試行回数が多すぎると、IPがブロックされます。
誰かが登録したい場合は、次のことができます:
この方法では、メールがすでに登録されているかどうかを推測することはできません。
AdHominemは正しいです。電子メールの検証を使用すると、この攻撃経路を防ぐことができます。しかし、それはユーザビリティの課題です。多くのサイトにとって、正しい(しかし面倒な)方法は次のとおりだと思います。
これは、特に、ユーザーがロックを解除した後、ユーザーが既存のアカウントに再度割り当てることを望む可能性のあるアクションを一時アカウントに実行させる場合は、面倒になる可能性があります。最も簡単な方法は、ユーザーがメールアドレスを確認するまで何もしないようにすることです。しかし、メールクライアントに切り替えて数分待つことを強制するとサインアップ率が低下するため、多くのサイトがメール確認を繰り返し要求しますが、要求しません。
別の可能性としては、誰かが現在あなたに存在するメールアドレスでサインアップした場合、
これらのシナリオでは、サイト管理者とユーザー間の連絡に電子メールのみを使用していると想定しています。一意性の適用や他のサイトユーザーに確認済みのメールアドレスを表示するなど、別の目的でそれらを使用している場合は、email-verification-firstアプローチを使用する必要があります。
代わりに、登録済みの電子メールを漏らさずにログインフォームのユーザー名で使用し、アカウントへのログイン試行が失敗した場合にユーザーにアラートを送信して、接続したい人がいることを警告することができます...
そのような情報や手がかりを与えることは、攻撃者にとってブルートフォースを簡単にするだけです。たとえば、ウェブサイト(ワードプレスの場合はそれを見つけます)にログイン管理者と任意のパスワードを与えると、「パスワードが正しくありません」と答えます。管理者アカウントに対してブルートフォース攻撃を仕掛けることができました。
あなたがグーグルのように本当の理由を与えることなく、登録フォームのメールを変更することを求めることができる別の解決策。多くのユーザー名の例alice.bobが存在しない、または登録されていない場合でも、Mme Alice.Bobによって取得されたことを意味するわけではありません(何度もgmailとGoogleのユーザー名を尋ねます)私はそれが利用できず、sername125のようなものを提案し、メールまたはG +を送信して確認した場合、それらを見つけることができないというメッセージ