ビルトイン・フィルタ
Java Remote Method Invocation (RMI)レジストリ、RMI分散ガベージ・コレクタおよびJava Management Extensions (JMX)には、すべてJDKに含まれているフィルタが備えられています。RMIレジストリとRMI分散ガベージ・コレクタ用に独自のフィルタを指定して、保護を追加する必要があります。
RMIレジストリのフィルタ
ノート:
これらのビルトイン・フィルタは、開始点としてのみ使用します。sun.rmi.registry.registryFilter
システム・プロパティを編集して、拒否リストを構成するか、許可リストを拡張してRMIレジストリに保護を追加するか、またはその両方を行います。アプリケーション全体を保護するため、パターンをjdk.serialFilter
グローバル・システム・プロパティに追加して、独自のカスタム・フィルタが設定されていない他のシリアライズ・ユーザーに対する保護を強化します。
RMIレジストリには、オブジェクトをレジストリ内でバインドできるビルトイン許可リスト・フィルタが含まれています。これには、java.rmi.Remote
、java.lang.Number
、java.lang.reflect.Proxy
、java.rmi.server.UnicastRef
、java.rmi.server.UID
、java.rmi.server.RMIClientSocketFactory
およびjava.rmi.server.RMIServerSocketFactory
クラスのインスタンスが含まれています。
maxarray=1000000;maxdepth=20
パターンとともにsun.rmi.registry.registryFilter
システム・プロパティを使用して、フィルタを定義し、ビルトイン・フィルタを破棄します。定義したフィルタがフィルタに渡されるクラスを受け入れるか、クラスまたはサイズを拒否する場合は、ビルトイン・フィルタが呼び出されません。フィルタが何も受け入れたり、拒否しない場合は、ビルトイン・フィルタが呼び出されます。
RMI分散ガベージ・コレクタのフィルタ
ノート:
これらのビルトイン・フィルタは、開始点としてのみ使用します。sun.rmi.transport.dgcFilter
システム・プロパティを編集して、拒否リストを構成するか、許可リストを拡張して分散ガベージ・コレクタに保護を追加するか、またはその両方を行います。アプリケーション全体を保護するため、パターンをjdk.serialFilter
グローバル・システム・プロパティに追加して、独自のカスタム・フィルタが設定されていない他のシリアライズ・ユーザーに対する保護を強化します。
RMI分散ガベージ・コレクタには、限定されたクラスのセットを受け入れるビルトイン許可リスト・フィルタが含まれています。これには、java.rmi.server.ObjID
、java.rmi.server.UID
、java.rmi.dgc.VMID
およびjava.rmi.dgc.Lease
クラスのインスタンスが含まれています。
ビルトイン・フィルタには、サイズ制限が含まれています。
maxarray=1000000;maxdepth=20
パターンとともにsun.rmi.transport.dgcFilter
システム・プロパティを使用して、フィルタを定義し、ビルトイン・フィルタを破棄します。フィルタに渡されるクラスを受け入れるか、クラスまたはサイズを拒否する場合は、ビルトイン・フィルタが呼び出されません。差替えフィルタが何も受け入れたり、拒否しない場合は、ビルトイン・フィルタが呼び出されます。
JMXのフィルタ
ノート:
これらのビルトイン・フィルタは、開始点としてのみ使用します。com.sun.management.jmxremote.serial.filter.pattern
管理プロパティを編集して、拒否リストを構成するか、許可リストを拡張してJMXに保護を追加するか、またはその両方を行います。アプリケーション全体を保護するため、パターンをjdk.serialFilter
グローバル・システム・プロパティに追加して、独自のカスタム・フィルタが設定されていない他のシリアライズ・ユーザーに対する保護を強化します。
JMXには、RMIを介してサーバーにデシリアライズ・パラメータとして送信できるクラスのセットを制限する組込みフィルタがあります。フィルタのパターンには、RMIを介してサーバーにパラメータとして送信できる型、およびそれらが依存するすべての型、さらにjavax.management.ObjectName
型およびjava.rmi.MarshalledObject
型を含める必要があります。デフォルトのフィルタは、Open MBeansやMXBeansによって使用される可能性があるすべての型に対応します。場合によっては、プラットフォームMBeanサーバーに独自のMBeanを登録するアプリケーションは、MBeanがパラメータとして受け入れるその他の型をサポートできるように、フィルタを拡張する必要があります。com.sun.management.jmxremote.serial.filter.pattern
管理プロパティを使用してフィルタのパターンを$JAVA_HOME/conf/management/management.properties
ファイルに指定します。このプロパティの値はjava
コマンドライン・オプション-Dcom.sun.management.jmxremote.serial.filter.pattern=<pattern>
を使用してオーバーライドできます。