■サーバの資源への不正アクセス
Webブラウザからアプリケーションにアクセスする際、ネットワーク上の悪意のあるユーザが、正当なアクセス権限をもつユーザになりすまし、サーブレットアプリケーションやHTMLファイルにアクセスする脅威があります。
サーバの資源に対する不正なアクセスを防止するために、Java EEには各種のセキュリティ機能があります。
詳細は、「Java EE運用ガイド」の「Java EEアプリケーションのセキュリティ機能」を参照してください。
■通信データの盗聴・改ざん
ネットワーク上の悪意のあるユーザが、正当にアクセスする権限を持つユーザとサーバとの間の通信データをのぞき見する脅威があります。さらにサーバとの間の通信データを改ざんされ、それが正当なデータとしてやりとりされる脅威があります。
通信データの改ざんを防ぐため、暗号化によるセキュリティ保護が必要です。それには、SSL通信を使用することができます。
詳細は、「Java EE運用ガイド」の「Java EEアプリケーションのセキュリティ機能」を参照してください。
※性能を重視する場合はSSLアクセラレータの使用を検討してください。
■サービス停止・サービス拒否
ネットワーク上の悪意のあるユーザが、標的とするサーバに対して、大量のアクセスを発生させてサーバの負荷を上げます。これによりレスポンスが悪くなりサービスの質が劣化する、または正規の利用者がサービスを利用できなくなってしまう脅威があります。
サービスへの攻撃に対しては、ユーザ認証、IPアクセス制限、SSL通信、リクエストメッセージのサイズ制限の機能の利用をお勧めします。
登録したユーザからのアクセスだけを許可するように設定することができます。
「Java EE運用ガイド」の「Java EEアプリケーションのセキュリティ機能」を参照してください。
特定のIPからのアクセスに対して、許可/拒否を設定することができます。
「Java EE運用ガイド」の「HTTPサービスの定義項目」を参照してください。
バッファオーバフローに備えて、リクエストメッセージの最大サイズを設定することができます。
「Java EE運用ガイド」の「HTTPサービスの定義項目」の「POSTリクエストの最大サイズ」を参照してください。
■サーバ情報の漏洩
ネットワーク上の悪意のあるユーザが、HTTPレスポンスヘッダのX-Powered-Byヘッダフィールドに存在するサーバ情報を入手し、製品情報から不正アクセスを試みることが可能となる脅威があります。
Java EEでは、X-Powered-Byヘッダフィールドを付加しない設定で運用することを推奨します。設定については「Java EE 運用ガイド」の「HTTPサービスの定義項目」の「X-Powered-Byヘッダフィールド」を参照してください。
■Webコンテナへアクセスする運用形態の設定
Webコンテナへのリクエストが運用形態に応じたものではない場合、セキュリティのリスクが発生することがあります。
たとえば、Webサーバでリクエストに対するチェックやフィルタリングを行っているときにWebコンテナに直接アクセスされた場合や、逆にWebサーバを利用しない形態であるときにWebサーバ経由であるかのようにリクエストの情報を偽られる場合が考えられます。
本機能の設定を適切に行うことで、IJServerクラスタの運用形態を限定することが可能です。
設定は、HTTPリスナーのプロパティ「requestCheck」で行います。詳細は、「Java EE運用ガイド」-「HTTPサービスの定義項目」を参照してください。
■クロスサイト・スクリプティングによるセッションCookieの漏洩
クロスサイト・スクリプティングによりCookieが第三者に漏えいする脅威があります。
HttpOnly属性をCookieに付加すると、クライアントサイドスクリプトからCookieを取得できなくなります。このため、クロスサイト・スクリプティングの影響を軽減することができます。
Java EEでは、CookieにHttpOnly属性を付加する運用を推奨します。なお、セッションCookieに対してHttpOnly属性を付加する設定は、以下を参照してください。
IJServerクラスタ単位に設定する場合
「Java EE運用ガイド」-「定義項目一覧」-「動作環境に関する定義項目」-「Webコンテナの定義項目」-「プロパティ」-「cookieHttpOnly」
Webアプリケーション単位に設定する場合
「Java EE運用ガイド」-「Java EEアプリケーションの開発」-「deployment descriptor」-「Interstage Web application deployment descriptor」-「Interstage deployment descriptorのタグの説明」-「cookie-properties」
注意
Webコンテナの定義項目のプロパティとdeployment descriptorの両方に設定した場合は、後者の設定が有効になります。