Tomcatのエラーページをカスタマイズする




Tomcatで「404 File Not Found」とか「500 Internal Server Error」とかが発生すると、デフォルトではTomcatが自動的にエラーページをブラウザに返します。
今回は、Tomcatが自動的に返すエラーページをカスタマイズして、独自のエラーページを返すようにします。

エラーページをカスタマイズする理由

Tomcatが返す標準のエラーページをユーザーが見ると、次のようなことが起こります。

  • 一般的なユーザーは、このページが何のページか理解できない
  • 一般的なユーザーは、次に何をすれば良いのかわからない
  • 攻撃者が、Tomcat(Java)を使っていることを知ってしまう
  • 攻撃者が、Tomcatのバージョンを知ってしまう
  • 攻撃者が、どのようなプログラムか、どこでエラーが発生したかスタックトレースでわかってしまう

これらは、ユーザビリティ、セキュリティともに、好ましいものではありません。
よって、エラーページはカスタマイズする必要が出てきます。

エラーページをカスタマイズするには?

Tomcatの設定を変更します。
HTTPエラーステータスコード別に、独自のエラーページを指定することで、エラーステータスに合った独自のエラーページを返すことができるようになります。

web.xmlの設定

設定の解説

この設定例では、404エラーが発生した場合と500エラーが発生した場合に、独自のエラーページを返します。
web.xmlにて、エラーコードと対になったエラーページを指定します。
設定例の通り、エラーページは、HTML以外にも、JSPを指定することができますので、よりきめ細かなエラーページを作ることもできます。