2

私は、従来のログインとパスワードシステムによってアクセスが制限されている基本的なWebサイトを設計しています。

ユーザーが存在しないログインを入力したときと、既存のアカウントに無効なパスワードを入力したときに、別のメッセージを表示する必要があるかどうかを判断できません。

私の最初の直感は、別のメッセージを表示しないことです。これは、潜在的な攻撃者に何が間違っているかについてのヒントを与えるためですが、そうすると、ユーザーが自分のエラーを理解するのが難しくなることがあります(おそらく、アカウントのログインと適切なものを誤って入力しただけです)。エラーメッセージの方が良いでしょう)。一方、アカウントのログインは(明らかにパスワードがそうであるように)秘密ではないので、それに関する情報を提供してもセキュリティレベルが下がることはないということをよく耳にします。

これに関して私が従うべき良い習慣/理論的根拠はありますか?

ありがとう。

4

4 に答える 4

4

これらを区別しないでください。悪意のある第三者が使用できる情報です。

ユーザー名が正しいことを彼らが知っている場合、彼らはあなたが漏らした貴重な情報をすでに持っています。

正確にログインに失敗したのはユーザーにとって小さな不便ですが、結局のところ、ユーザーはユーザー名とパスワードの両方を入力する必要があります。

于 2012-05-20T18:56:20.447 に答える
0

一般的な方法は、攻撃者がどのユーザー名が有効であるかを見つけられないように、borhの場合も同じように動作することです。彼がすでに死んでいる場合、害はありません。彼が死んでいない場合は、彼にとってそれを容易にしないでください。これは、合法的なユーザーへの不便は、悪意のある第三者に対する防御よりも重要でないと考えられるシナリオの1つです。

于 2012-05-20T18:59:38.933 に答える
0

「メッセージ」と「エラーコード」には違いがあります。

ユーザーがログインに失敗した場合は、(おそらくログ記録の目的で)不正なユーザー名と不正なパスワードを内部的に区別することをお勧めします。

ただし、ユーザーに表示されるメッセージはどちらの場合も同じである必要があります。たとえば、「ユーザー名とパスワードの組み合わせが正しくありません」などです。それぞれの場合に異なるメッセージを使用する場合は、基本的に「このユーザー名は存在しますか?」を提供します。フォーム。攻撃者になる可能性のあるユーザーがユーザーアカウントにアクセスするのに役立ちます。

同じメッセージを使用すると、実際にユーザーに小さな不便をもたらす可能性がありますが、最終的にはセキュリティを優先する必要があります。いずれにせよ、今では多かれ少なかれ、ユーザー名とパスワードの両方に同じメッセージを表示するのが一般的です。

于 2012-05-21T11:19:18.470 に答える
0

ユーザーに何が悪いのかを言わない特別な理由はないと私は主張します。質問は以前に尋ねられました、そしてあなたはここで私の答えを見ることができます(しかし私の悪い英語を許してください):https ://stackoverflow.com/a/8612838/455006

ただし、ハイライトは次のとおりです。攻撃者がユーザー名を知っている場合でも、ブルートフォースが可能な限り困難になるようにシステムを作成する必要があります。また、「彼ら」が少なくとも1つのユーザー名を知っているという事実を多かれ少なかれ信頼する必要があります。かなりの精度でそれらを推測または計算するためのいくつかの方法です。ユーザー名を知らない攻撃者に頼ることは、隠すことによってセキュリティに隣接していることです。また、ユーザー名を知っている攻撃者を常に信頼している場合は、セキュリティスキームと計画がはるかに優れている可能性があります。

これらの引数がそれほど関連性がない場合があることに注意してください。これらは、その中のユーザー名自体が悪意のある活動に使用される可能性がある場合です(つまり、ユーザー名はスパムの送信に使用できる電子メールアドレスです。アカウント-フィッシング攻撃などに使用できる番号)。サイトのコンテンツが非常に重要であるため、あいまいさによる保護も重要であると主張することもできますが、その場合は、代わりに2要素認証、使い捨てパスワードなどを使用する必要があると確信しています。このためのオープンソースおよび/または無料のソリューションがいくつかあります。

于 2012-05-21T15:44:49.490 に答える