SecurityManagerがブラウザで信頼できないAppletが実行されないように保護 するように、Tomcatの実行中に、SecurityManagerを使ってトロイの木馬的な Servletや、JSP、JSP beans、タグライブラリからサーバを保護することが できます。さらに、不注意によるミスからも同様に保護することができます。
あなたのサイトで、うっかり以下のようなコードを含むJSPの登録を認めたこ とを想像してみてください。
<% System.exit(1); %>
このJSPがTomcatで実行されると,Tomcatは常にExitしてしまいます。
JavaのSecurityManagerを使うことは,システム管理者がサーバーを安全で信 頼できる状態を保つために使用できる一つの防御ラインです。
それでも、SecurityManagerを使って運用する方が、それを使わないで運用す
るよりも確実に安全です。
Tomcatに適用できるシステムのSecurityManagerのPermissionクラスを、以下 に簡単に説明します。 パーミッションの使用方法については、JDKのドキュ メントを参照してください。
java.util.PropertyPermission
java.home のようなJVMプロパティへのread/writeアクセスの制御
java.lang.RuntimePermission
exit()やexec()のようなシステム/ランタイム関数の制御
java.io.FilePermission
ファイルとディレクトリに対するread/write/executeアクセスの制御
java.net.SocketPermission
ネットワークのソケットの使用の制御
java.net.NetPermission
マルチキャストネットワークコネクションの使用の制御
java.lang.reflect.ReflectPermission
クラスを内省するために使用するリフレクションの使用の制御
java.security.SecurityPermission
Securityメソッドへのアクセスの制御
java.security.AllPermission
SecurityManagerを使わずにTomcatを実行しているように、全てのパーミッショ
ンに対してアクセスを許可します。
[訳注: これは角瀬和博が翻訳しました。 日本語訳に対するコメントは、jajakarta-report@nekoyanagi.com宛に送って下さい。]