3.8.4 機能の使用方法
- 〈この項の構成〉
(1) 制限値の変更
- セキュアプロセッシング機能の制限値を変更するには次の方法があります。
-
-
Cosminexus XML Processorが独自に規定するシステムプロパティを指定する。
-
Cosminexus XML Processorが独自に規定するプロパティを指定する。
-
システムプロパティと各APIのプロパティ指定が同時に指定された場合,各APIのプロパティの指定を優先します。
提供するシステムプロパティの一覧を次の表に示します。
項番 |
システムプロパティ名 |
内容 |
指定可能値※1 |
デフォルト値 |
---|---|---|---|---|
1 |
com.cosminexus.jaxp.secure_processing.entityExpansionLimit |
エンティティ参照の展開回数 |
0〜2147483647 |
100000 |
2 |
com.cosminexus.jaxp.secure_processing.maxGeneralEntitySizeLimit |
一般エンティティの文字列長 |
0〜2147483647 |
0 |
3 |
com.cosminexus.jaxp.secure_processing.maxParameterEntitySizeLimit |
パラメータエンティティの文字列長 |
0〜2147483647 |
1000000 |
4 |
com.cosminexus.jaxp.secure_processing.totalEntitySizeLimit |
エンティティの展開後の実体文字列長の合計 |
0〜2147483647 |
50000000 |
5 |
com.cosminexus.jaxp.secure_processing.entityReplacementLimit |
エンティティによって置き換えられる文字列や参照されるファイルにあるノード数 |
0〜2147483647 |
3000000 |
6 |
com.cosminexus.jaxp.secure_processing.maxOccurLimit |
内容モデルのノード数 |
0〜2147483647 |
3000 |
7 |
com.cosminexus.jaxp.secure_processing.maxXMLNameLimit |
XML名の文字列長 |
0〜2147483647 |
1000 |
8 |
com.cosminexus.jaxp.secure_processing.xpathExprGrpLimit※2 |
XPath式に含まれるグループの数 |
0〜2147483647 |
10 |
9 |
com.cosminexus.jaxp.secure_processing.xpathExprOpLimit※2 |
XPath式に含まれる演算子の数 |
0〜2147483647 |
100 |
10 |
com.cosminexus.jaxp.secure_processing.xpathTotalOpLimit※2 |
XPath式に含まれる演算子の総数 |
0〜2147483647 |
10000 |
- 注※1
-
値に0が指定された場合,制限値によるエラーチェックはされません。
指定できる値以外の値が指定された場合デフォルト値が設定されます。
- 注※2
-
デフォルト値より小さい値(0を除く)を指定するとCosminexus製品で制限に該当してエラーが発生するおそれがあるため,デフォルト値より小さい値を設定することは推奨しません。
提供するプロパティの一覧を次の表に示します。プロパティ値で指定できる値は次の表を参照してください。
不正な値を指定した場合,値を設定しません。したがって設定前の値のままとなります。
項番 |
プロパティ名 |
内容 |
---|---|---|
1 |
http://cosminexus.com/xml/properties/entityExpansionLimit |
エンティティ参照の展開回数 |
2 |
http://cosminexus.com/xml/properties/maxGeneralEntitySizeLimit |
一般エンティティの文字列長 |
3 |
http://cosminexus.com/xml/properties/maxParameterEntitySizeLimit |
パラメータエンティティの文字列長 |
4 |
http://cosminexus.com/xml/properties/totalEntitySizeLimit |
エンティティの展開後の実体文字列長の合計 |
5 |
http://cosminexus.com/xml/properties/entityReplacementLimit |
エンティティによって置き換えられる文字列や参照されるファイルにあるノード数 |
6 |
http://cosminexus.com/xml/properties/maxOccurLimit |
内容モデルのノード数 |
7 |
http://cosminexus.com/xml/properties/maxXMLNameLimit |
XML名の文字列長 |
8 |
http://cosminexus.com/xml/properties/xpathExprGrpLimit |
XPath式に含まれるグループの数 |
9 |
http://cosminexus.com/xml/properties/xpathExprOpLimit |
XPath式に含まれる演算子の数 |
10 |
http://cosminexus.com/xml/properties/xpathTotalOpLimit |
XPath式に含まれる演算子の総数 |
制限値を設定する場合に表3-20のプロパティを設定するメソッドの一覧を次の表に示します。
プロパティを設定する場合,セキュアプロセッシング機能を有効にしてから設定してください。
項番 |
クラス名・インタフェース名 |
メソッド |
---|---|---|
1 |
javax.xml.parsers.DocumentBuilderFactory |
setAttribute |
2 |
javax.xml.parsers.SAXParser |
setProperty |
3 |
org.xml.sax.XMLReader |
setProperty |
4 |
javax.xml.transform.TransformerFactory |
setAttribute |
5 |
javax.xml.validation.SchemaFactory |
setProperty |
com.cosminexus.jaxp.preparsedxml.PreparsedObjectFactoryではプロパティでの設定はできません。したがってシステムプロパティで設定する必要があります。
(2) 互換用システムプロパティ
この機能をサポートする以前と同様の動作にする必要性を考慮し,互換用システムプロパティを提供します。提供するプロパティの仕様を次の表に示します。このシステムプロパティと各APIのフィーチャー指定が同時にされた場合,各APIのフィーチャーの指定を優先します。
システムプロパティ名 |
内容 |
値※ |
---|---|---|
com.cosminexus.jaxp.secure_processing.compatible |
09-50-04以降のデフォルト値を使用する。(表3-14参照) |
false(デフォルト) |
09-50-03以前のデフォルト値を使用する。 |
true |
- 注※
-
小文字の"true"以外の値は,すべて"false"を指定したものとして扱います。