私たちが間違ったパスワードを入力すると、ほとんどのウェブサイトで「ユーザー名またはパスワードが間違っています」と表示されます。 「あなたのパスワードは間違っています」と言わないのはなぜですか?「あなたのパスワードは間違っている」と言わないのはなぜですか?
答えて
ちょうど「パスワードが間違っている」というのセキュリティ上の問題を無視するよりも行うことがはるかに高速です。 まず、「あなたのパスワードが間違っている」と言うことができるかどうか確認できます。
私は大学のグループにこの質問を掲載しました。グループからの1つの回答がここではポジティブな価値があると感じました。
ウェブサイトは、ウェブサイトは、あなたが正しくあなたのユーザー名を入力したことを確認してください である場合にのみ、「パスワードが間違っている」と言うことができます。ウェブサイトはあなたのユーザー名を正しく入力したことを、どのようにして に知らせていますか?それを知る方法はありません。
認証の失敗は、次の3つの方法で発生する可能性があります
- あなたは正しいユーザ名が、間違ったパスワードを入力することができます。
- 正しいパスワードを入力しても間違ったユーザー名を入力することがあります。
- 間違ったユーザー名とパスワードを入力することがあります。
ウェブサイトでは以下のように処理されます。
。ユーザー名がデータベースにない場合、Webサイトは「あなたのユーザー名が間違っています」と言うことはできません。ウェブサイトはあなたが入力したパスワードがあなたの正しいパスワードかどうかを知らないので、ウェブサイトは「ユーザー名かパスワードが間違っている」と言うことができます。のみ。
b。ユーザー名がデータベースにある場合、ウェブサイトは「あなたのパスワードは間違っている」と言うことはできません。 ウェブサイトは、入力したユーザー名が正しいユーザー名かどうかわからないためです。したがって、ウェブサイトで「ユーザー名またはパスワードが間違っています」と言うことができます。のみ。
誰かが有効なユーザー名とパスワードを推測しようとしている場合、「はい、有効なユーザー名を推測できました」というメッセージは表示されません。ユーザー名が他の方法で表示される場合は、特定のサイトで有用な場合とそうでない場合があります。
ウェブサイトのほとんどサインアップパスワードまたはリセットパスワードを持っています。この機能を使用すると、有効なユーザー名を簡単に取得できます。 –
@habeebperwad、あなたがそれを行うことができれば、それは正しく設計されていません。ユーザー名(またはユーザー名を忘れた場合は電子メール)を入力する必要があります。その後、そのアドレスに電子メールを送信して、回復プロセスを開始します。私は_never_何かをしたサイトを見たことがない "あなたのusernamkeボブですか?それは確かにセキュリティホールになるでしょう。私があなたの質問にコメントしたリンクをチェックしてください。パスワードから「xyzzy」を入力しただけの短いステップです。「supersekritsauce」を意味するのではないでしょうか? ':-) – paxdiablo
@paxdiablo http://stackoverflow.com/users/account -recoveryと入力し、「[email protected]」と入力して入力します。 「その電子メールアドレスを持つユーザーはいません」と表示されます。 –
セキュリティとは別に、「怠惰な」デザインの選択肢もあります。ユーザー名が間違っているかパスワードが間違っているかどうかを個別にチェックするのはなぜか1つのクエリを書いて成功かどうかを出力するだけで、最終的にユーザーはどちらかが間違っているかどうかを知ることができます。
また、怠惰やコードの清潔さも保証されます。下の簡単な例。
If(password != submittedpw || username != submittedusername)
{
Print 'username and or password is wrong';
}
上記
if (password != submittedpw)
{
Print 'password is wrong';
}
elseif (username != submittedusername)
{
print 'username is wrong';
}
- 1. Google閉鎖注釈が私に間違っているとは言わない
- 2. 照明が間違っているのはなぜですか?
- 3. カーネルはなぜプロセスアドレス空間にあると言われていますか?
- 4. シェバング行は私のシェバングラインと間違っているかわからない
- 5. なぜこのSQLは間違っていますか(MySQL)?
- 6. なぜPerlでは '0'が間違っていますか?
- 7. RVMが間違ったrubygemを指しているのはなぜですか?
- 8. なぜクランはもっと使われないのですか?
- 9. なぜ「ルビジェムを必要とするのは間違っていますか?」
- 10. WP7データバインド - わからないが、私は間違って
- 11. ダブルプラスと時々正しい、なぜ間違っているのですか?
- 12. 私が持っているコードは再帰ではないと言われました...なぜガイダンスを探していないのですか?
- 13. JSON.Parseが「無効な文字」と言っているのはなぜですか?
- 14. タイムスタンプの日付が間違っているのはなぜですか?
- 15. この再帰文が間違っているのはなぜですか?
- 16. 私の再帰関数が間違っているのはなぜですか?
- 17. yuicompressorエラー、何が間違っているかわからないのですか?
- 18. タイムスタンプunix時刻と時刻()の違いが間違っているのはなぜですか?
- 19. 正規表現のディジットのサブグループ間の ' - 'またはスペースが間違っているのはなぜですか?
- 20. HTMLサブメニューが間違った位置にあるのはなぜですか?
- 21. Eclipse Junoはこのあいまいなメソッドエラーで間違っていますか?
- 22. は」 '==ない' との間に論理的な違いは、(あるなし)=あり
- 23. setTimeout( "otherFunction()"、2000)が間違っているのはなぜですか?
- 24. なぜw3バリデーターはonClickが有効でないと言っていますか?
- 25. グラフapiページングが間違っています...なぜですか?
- 26. なぜこのPythonコードが間違っていますか?
- 27. OpenLayers:なぜ私のベクターフィーチャーマーカーが間違っていますか?
- 28. なぜこのシャッフルアルゴリズムが間違っていますか?
- 29. なぜw3cバリデーターはこのコードにエラーがあったと言いますか?
- 30. ユーザ名とパスワードが間違っていても、データベース内にあっても間違っています
http://stackoverflow.com/questions/712339/why-should-checking-a-wrong-password-take-longer-than-checking-the-right-one/712363#712363 – paxdiablo