3.8.1 機能の概要
JAXPではJAXP1.3よりXMLの解析でセキュア(安全)な処理を実現するためにセキュアプロセッシング機能を提供しています。セキュアプロセッシング機能ではDTDに定義されたエンティティやXMLスキーマに指定されたmaxOccursの値を制限することによってサービス不能攻撃(DoS)の可能性がある不当なXMLを処理しないようにします。セキュアプロセッシング機能の設定は次のクラスに対しsetFeatureメソッドを使用し次のフィーチャーで設定します。フィーチャーの指定方法を次の表に示します。詳細はJSR 206 JavaTM API for XML Processing(JAXP)1.4および次のクラスのsetFeatureメソッドのjavadocを参照してください。
-
javax.xml.parsers.SAXParserFactory
-
javax.xml.parsers.DocumentBuilderFactory
-
javax.xml.transform.TransformerFactory
-
javax.xml.validation.SchemaFactory
-
javax.xml.xpath.XPathFactory
表3‒13 フィーチャーの指定方法 フィーチャー名
内容
値
http://javax.xml.XMLConstants/feature/secure-processing
機能を有効にする
true
機能を無効にする
false
XMLPでは09-50-03までセキュアプロセッシング機能をデフォルトで無効としていましたが,09-50-04以降一部のAPIでデフォルト有効となります。また制限値をチェックする項目では,制限値を変更できるようにし,エンティティに関して制限する項目を追加し機能を強化します。ただし,互換性のため,以前と同様に動作させるためのシステムプロパティも提供します。