| アプリケーションサーバ/コンテナ活用編 |
|
Tomcatは、存在しないURLへのリクエストがあったとき、認証に失敗したときやサーブレットにエラーがあったときなど、HTTPのエラー発生時には以下のようなエラーページを表示します。
![]() |
| Tomcatのデフォルトエラーページ |
しかし、このエラーページはセキュリティ的に問題となることがあります。使用しているTomcatのバージョンがエラーページのフッタに表示されるからです。エラーページの表示から、脆弱性のあるバージョンを使用していることを知られ、攻撃対象にされてしまう危険があります。もちろん、メンテナンスが万全で、脆弱性が発見されるたびに最新バージョンにアップデートしているシステムなら、バージョンが表示されても問題はありませんが、現実はなかなかそういかないでしょう。
このような危険を防ぐために、エラーページを自前で用意したものに置き換え、セキュリティの向上を図るべきです。Tomcatでは、Apacheと同様にエラーコードに応じて独自のエラーページを指定することが可能です。また、独自のエラーページを用意しておくことで、エラーページも含めたWebアプリケーション全体の外観を統一できるという利点もあります。
■独自のエラーページを指定する方法
独自のエラーページを使用するには、サーブレットのデプロイメントディスクリプタ(web.xml)の修正が必要です。以下では、「指定したページが見つからない」ことを意味する404エラーコードに対して、Webアプリケーションのルート配下にある「/error/404.html」というページが表示されるようにします。赤字部分が、追加すべき記述です。
| デプロイメント・ディスクリプタ(web.xml) |
<?xml version="1.0" encoding="UTF-8"?> |
デプロイメントディスクリプタの変更には、Tomcat全体の設定ファイル「%CATALINA_HOME%\conf\web.xml」を変更する方法と、それぞれのWebアプリケーション配下にある「WEB-INF\web.xml」を変更する方法の2つがあります。
セキュリティ上の理由で独自のエラーページを使う場合は、全体の設定ファイルとなる「%CATALINA_HOME%\conf\web.xml」に記述します。各Webアプリケーションのweb.xmlに記述した場合、それ以外のURLのリクエストにはデフォルトのエラーページを表示してしまうからです。逆に、Webアプリケーションの外観の統一が理由なら、各Webアプリケーションのweb.xmlに記述しておくことで、アプリケーションごとの外観に合わせたエラーページを表示させることができます。
■最低限用意すべきエラーページ
HTTPステータスコードでは、 400番台と500番台がエラーコードとして定義されています。エラーコードだけでもかなりの数があるため、それらのすべてについて、独自のページを用意するのは容易ではありません。また、その多くはほとんど目にする機会のないものです。したがって、頻繁に表示される可能性のある、以下のエラーコードだけを用意しておけば実用上は問題ないでしょう。
頻繁に表示される主なエラーコード| コード番号 | 意味 |
| 401 | 認証に失敗した |
| 403 | 指定したページへのアクセス権限がない |
| 404 | 指定したページが見つからない |
| 500 | サーブレットやCGIなど、サーバ内部に問題があってページを表示できない |
| 「Java TIPS」 |
TechTargetジャパン
- EclipseでScalaプログラミングを始めるための基礎 (2012/2/10)
概要や5つの特徴を紹介し、開発環境を構築して対話型実行環境「REPL」やEclipse上でHello Worldを実行します - 並列分散処理の常識をHadoopファミリから学ぶ (2012/2/8)
並列分散処理の課題やHadoopの長所/短所、そして短所を補うHadoop関連プロジェクトの構成や概要などを簡単に紹介 - WebLogicサーバ最新版「12c」の気になる4つの特徴 (2012/1/31)
久々にメジャーアップグレードしたJavaアプリケーションサーバについて、製品担当者に軽量インストーラなどの特徴を聞いた - GitHubをもっとソーシャルに使いこなすための7つ道具 (2012/1/23)
ソースコードホスティングのGitHub周辺で便利な新サービスが続々登場しているので、まとめて紹介しよう。特に連動クラウド「fluxflex」が注目だ
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -

