ビルトイン・フィルタ

Java Remote Method Invocation (RMI)レジストリ、RMI分散ガベージ・コレクタおよびJava Management Extensions (JMX)には、すべてJDKに含まれているフィルタが備えられています。RMIレジストリとRMI分散ガベージ・コレクタ用に独自のフィルタを指定して、保護を追加する必要があります。

RMIレジストリのフィルタ

ノート:

これらのビルトイン・フィルタは、開始点としてのみ使用します。sun.rmi.registry.registryFilterシステム・プロパティを編集して、拒否リストを構成するか、許可リストを拡張してRMIレジストリに保護を追加するか、またはその両方を行います。アプリケーション全体を保護するため、パターンをjdk.serialFilterグローバル・システム・プロパティに追加して、独自のカスタム・フィルタが設定されていない他のシリアライズ・ユーザーに対する保護を強化します。

RMIレジストリには、オブジェクトをレジストリ内でバインドできるビルトイン許可リスト・フィルタが含まれています。これには、java.rmi.Remotejava.lang.Numberjava.lang.reflect.Proxyjava.rmi.server.UnicastRefjava.rmi.server.UIDjava.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.ObjIDjava.rmi.server.UIDjava.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>を使用してオーバーライドできます。