私の主なアドバイスは次のとおりです。しないでください。
特定のリソースで認証が必要な場合は、おそらく何かを隠す必要があります。非表示にするものがある場合は、公開しているものに注意を払う必要があります。また、ファイルがあるリソースとそうでないリソースに対して異なる応答を行う場合は、何かを公開していることに注意する必要があります。
これは主要なセキュリティホールですか?言うことはできませんが、攻撃者に何かを明らかにするのに十分かもしれません。それは確かに攻撃対象領域の拡大なので、2つの選択肢があります。
- 入念な分析を行って、どのURIがファイルにマップされ、どのURIがファイルにマップされていないかに関する情報が攻撃者にとって有益ではないことを証明します。
- 認証されたユーザーに与えられるのは404だけですが、要求に認証を要求します。
後者の方が簡単で、エラーが発生しにくくなります。
とはいえ、統合モードを使用してASP.NETで認証を行う方法はいくつかあります。AuthorizeRequest
とAuthenticateRequest
イベントを処理するモジュールでそれを行っていますか?そのようなケースが発生しているかどうかをチェックし(URIが既存のファイルにマップされているかどうかをチェック)、その場合は401を送信しないようにすることができます。