私たちが間違ったパスワードを入力すると、ほとんどのウェブサイトで「ユーザー名またはパスワードが間違っています」と表示されます。 「あなたのパスワードは間違っています」と言わないのはなぜですか?「あなたのパスワードは間違っている」と言わないのはなぜですか?
答えて
ちょうど「パスワードが間違っている」というのセキュリティ上の問題を無視するよりも行うことがはるかに高速です。 まず、「あなたのパスワードが間違っている」と言うことができるかどうか確認できます。
私は大学のグループにこの質問を掲載しました。グループからの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. 私は何も間違っていると言っているのはなぜですか?
- 2. 私のコードは間違っていると言われますが、なぜですか?
- 3. Google閉鎖注釈が私に間違っているとは言わない
- 4. 出力が間違っているのはなぜですか?
- 5. 照明が間違っているのはなぜですか?
- 6. gettimeofdayタイムゾーンが間違っているのはなぜですか?
- 7. カーネルはなぜプロセスアドレス空間にあると言われていますか?
- 8. ブラウザのURLのスペルが間違っていないのはなぜですか?
- 9. Python経由のMS SQL pyodbc:なぜ構文が間違っていると言っているのですか?
- 10. シェバング行は私のシェバングラインと間違っているかわからない
- 11. CodingBat has22なぜこのソリューションは間違っていますか?
- 12. なぜこのSQLは間違っていますか(MySQL)?
- 13. Ruby:なぜ私のコードは間違っていますか?
- 14. なぜPerlでは '0'が間違っていますか?
- 15. RVMが間違ったrubygemを指しているのはなぜですか?
- 16. インデントが間違っているのはなぜ間違った機能ですか?
- 17. なぜ私は間違った時間になるのですか?
- 18. なぜクランはもっと使われないのですか?
- 19. なぜPHPは値が配列の中にあるのではないと言っていますか?
- 20. なぜ「ルビジェムを必要とするのは間違っていますか?」
- 21. Javaでは、なぜDate()オブジェクトのprintfが間違っているのですか?
- 22. JavaScriptでこの比較が間違っているのはなぜですか?
- 23. SQLiteのSumの結果が間違っているのはなぜですか?
- 24. 「then」と「else」の式が同じタイプではないと言われているのはなぜですか?
- 25. SET形式が間違っています。どちらが間違っていたかわからない
- 26. 割り当てが間違っているのはなぜですか?
- 27. ダブルプラスと時々正しい、なぜ間違っているのですか?
- 28. パスワードが間違っていないか確認するPHPとajax
- 29. WP7データバインド - わからないが、私は間違って
- 30. GO言語で以下のコードの出力が間違っているのはなぜですか?
http://stackoverflow.com/questions/712339/why-should-checking-a-wrong-password-take-longer-than-checking-the-right-one/712363#712363 – paxdiablo