ここに文脈があります:プロダクション環境 - http 500エラーページ - no stacktrace please
私は非常に大企業に勤務しています。ここには、多数のJava EE Webアプリケーションを実行する多数のWebSphere Application Serverクラスターがあります。これらのアプリケーションのほとんど(ただしすべてではありません)には、予期しない例外が発生したときにカスタムエラーページを表示するためにweb.xmlに特別な指示が含まれています。ここでは例です:もちろん、そのようにすることで
<error-page>
<error-code>500</error-code>
<location>/500.jsp</location>
</error-page>
、我々の顧客に優しいエラーページを表示することを目指しますが、さらに、私たちは主に、通常、標準のHTTP 500エラーページに含まれているスタックトレースを非表示にすることを目指します。
これらのスタックトレースには、パッケージの名前、クラス名、メソッド名などの重要なデータが多数含まれています。最悪の場合、これらのスタックトレースにはSQL例外が含まれているため、多くの場合、使用されているデータベースサーバーソフトウェアが明らかになります。最悪の場合でも、これらのスタックトレースにはファイルとフォルダのパスが含まれているため、WebSphere Application Serverが動作するオペレーティングシステムのファミリを明らかにすることができます。
これらのスタックトレースによって明らかになる可能性がある他のすべての重要なデータについて言及する必要がありますか?
ここで大きな驚きはありません。すべての大企業は、これらのスタックトレースを顧客に非表示にする必要があります。
しかし、ここで私たちの問題だ:いつか
、でもうまくweb.xmlファイルで構成されたカスタムエラーページで、WebSphereは、お客様のウェブブラウザに基本的なエラーページを送信します。なぜWebSphereがそうするのかよく分かります。たとえば、http応答のヘッダーがすでにコミットされている場合、WebSphereはそのバッファをリセットしてカスタム・エラー・ページを送信できず、基本エラー・ページを送信するよりもうまく機能しないことを認識しています。ここで
は私の質問です:
(1)それは決してその基本的なエラー・ページで任意のスタックトレースが含まれてのWebSphereを設定することは可能ですか?このように、何らかの技術的理由により、WebSphereがカスタム・エラー・ページを送信できない場合でも、少なくとも基本エラー・ページには機密データは含まれません。
どうすればこのことができますか?
ありがとう、
は、スタックトレースを無効化についてあなたの特定の質問に答えることはできませんが、Webサーバーまたはプロキシを持っていますWebSphereのフロントでエラーページを設定できますか? – dbreaux
デフォルトのエラーページが表示されたら、WASのinfrontのWebサーバーを使用してhttpプラグインを使用していますか? – ams
WebSphereサーバーの前でMicrosoft Internet Information Serverを使用し、WebSphereプラグイン(ISAPIフィルター)を使用してHTTP要求をWebSphereサーバーに転送します。また、WebSphere管理コンソールを使用して、 "plugin-cfg.xml"ファイルを生成します。これらのファイルを編集することはできません(編集するために編集すると、変更内容を変更する必要があるため)。したがって、これらのファイルにいくつかの変更が必要な場合、WebSphere管理コンソールは、これらの変更を「plugin-cfg.xml」ファイルの生成中に組み込む必要があります。 – closingBrace