web-dev-qa-db-ja.com

キャプチャが誤って入力された場合、パスワードフィールドをクリアする必要がありますか?

登録画面には、メール、パスワード、キャプチャの3つのフィールドがあります。

ユーザーは有効なメールアドレスとパスワードを入力しましたが、間違ったキャプチャを入力しました。

ここでは、間違ったキャプチャフィールドに固有のエラーメッセージが表示され、キャプチャがリセットされます。

[パスワード]フィールドの値も空白にリセットする必要がありますか?

13
Aditya Durgude

誤ったパスワードがある場合にパスワードフィールドをクリアすると、障害のあるCAPTCHAのパスワードフィールドもクリアされ、残りが有効であったときに間違っていたのがCAPTCHAであることが明確に示されません。

どうして?

CAPTCHAを使用している場合—つまり、ボットがドアをノックすることを期待していて、それらを拒否したい場合—ログイン試行の失敗からボットに情報を収集させないでください。これは、アカウントに侵入するためにパスワードを試すボットの場合に特に重要です。パスワードが実際に正しいことを明かしたくない。

人々が露骨にパスワードを再利用し、サーバーがハッキングされる昨今、ユーザー名とパスワードのリストにアクセスするユーザーは、それらのリストをボットに送り、ボットにネット上のさまざまなサイトで試してもらいます。

したがって、CAPTCHAが原因でボットがログインに失敗した場合でも、ハッカーに「サイトA、B、Cはこれらのユーザー名とパスワードの組み合わせで機能しているようです」と伝えることができます。その後、ハッカーは手動でログインして適切なキャプチャを入力できます。

14
MichaelK

いいえ、しないでください

まず第一に、captchaが必要かどうかを調べてテストします。そして、私はそれを徹底的にテストします。 Captchaは明らかにセキュリティの強化ですが、使いやすさの点で深刻な問題があります。以下のドキュメントを参照してください:

これはほんの小さなサンプルですが、長所と短所を理解するためにそれらを読むと役立つでしょう。ただし、これらのドキュメントを読みたくない場合は、簡略化します。キャプチャは非常に煩わしく、煩わしく、使いやすさと変換に影響します

じゃあ何をすればいいの?

もちろん、ハニーポットのような他の方法も使用できますが、-captcha、あなたはそれが必要かどうかに関わらず、これは客観的な事実です。したがって、アンチパターンの領域には、さらに摩擦が追加されています。

これについて考える:

ユーザーがパスワードを正しく入力するユーザーが間違ったキャプチャを入力する

FAIL

次に、パスを削除し、ユーザーが間違ったパスワードを入力してキャプチャを修正します

FAIL

今、ユーザーは何が問題かわからないので、別のパスを試します

FAIL

別のパスでもう一度試す?

FAIL

この時点で、ユーザーが絶望的である場合、ユーザーはパスワードの残りを要求します。 それ以外の場合は、サイトを永久に放棄します。上記はランダムなフローではなく、非常に一般的なユーザーフローであることに注意してください。また、セキュリティの観点から考えている場合は、まあ、ユーザーにすべてのパスワードとバリエーションを入力させる必要があります。これが問題である場合は、ハッカーに多数のREALパスワードを提供しただけです。

要するに

摩擦を発生させないでください。しないでください。仕様内で可能な限り最小の摩擦を使用し、常に代替案を見つけようとします。したがって、パスワードが正しい場合はそのままにして、ユーザーにcaptchaのみを処理させます。そして再び:captchaの必要性が本当に極端でない限り(たとえば、かなりのセキュリティが必要です)の代わりを探します

9
Devin

攻撃者に、「どのアカウント資格情報が有効か」という唯一の質問に対する手掛かりを提供しないでください。これは、ログインが失敗したときに表示されるエラーメッセージに相当する問題です。

「間違ったパスワード」や「間違ったユーザー名」のようなものを決して述べないでください。 「間違った認証情報」や「間違ったユーザー名/パスワードの組み合わせ」などのフレーズを使用します。

正しい場合はパスワードフィールドを入力したままにしておくと、攻撃ベクトルの可能性が非常に速く認識されます。ボットに資格情報を使用せずに確認する方法をボットに与えると、キャプチャは役に立たなくなります。

3
Jonas Köritz