1

例外によってスタックトレースが表示されるため、ASP.NETベースのWebサイトではweb.configでカスタムエラーを有効にする必要があることを読み続けています。

メモリに障害がある可能性があります(現在、開発中のASP.NET Webサイトにアクセスできません)が、web.configファイルのCompilation debug = "false"である限り、スタックトレースは表示されません。 。

デバッグフラグとスタックトレースの表示についての私の理解は正しいですか?その場合、カスタムエラーが有効になっていない場合でも、例外についてリモートユーザーに表示されるメッセージは、説明のないメッセージだけではありません。

「内部サーバーエラーが発生したため、ページを表示できません。」

もしそうなら、セキュリティの観点から、例外のカスタムエラーページを表示しないのは問題ありませんか?

4

2 に答える 2

2

いいえ、デバッグフラグがオフの場合でも、スタックトレースは表示されますが、スタック内の各呼び出しの行番号は表示されません。

説明のないメッセージは、構成を変更しない限り、サーバーからの実際のエラーメッセージの代わりに、ブラウザーが通常表示するメッセージです。エラーメッセージを表示して情報を公開したい人は誰でも、これを行う方法を知っているでしょう。

スタックトレースを表示すること自体はセキュリティリスクではありませんが、サイトのハッキングを容易にする可能性のある情報が公開されます。たとえば、ハッカーは、入力をサニタイズして回避する方法を見つけるために何が行われたかについての手がかりを得る可能性があります。

于 2010-07-06T22:58:29.757 に答える
0

ほとんどの場合、カスタムエラーメッセージは、スローされるデフォルトのエラーよりも優先されます。これにより、ユーザーは、戻って再試行しなくてもサイトを閲覧し続けることができる場所に優雅に移動します。

web.Configでデバッグをオフにすることは非常に重要であり、行番号とスタックトレースを表示しないだけでなく、パフォーマンスを劇的に最適化するリリースモードでビルドするようコンパイラに指示します。アプリが本番環境に移行したらすぐに、すべてのデバッグを無効にする必要があります。

于 2010-07-06T23:49:03.113 に答える