public class DisallowDTDSecureSAXParser extends AbstractSecureSAXParser
EntityResolverとしてorg.exolab.castor.util.DTDResolverが設定された場合を除き、
XMLデータにDTDを含むことを許容しないことで、XXEとXML Bombの脆弱性を排除する。
(org.exolab.castor.util.DTDResolverは、Castorがマッピング定義ファイルを読む際に設定されるEntityResolver。)
このクラスはCastorで利用することを前提としている。
クラスパス直下のcastor.propertiesに、
org.exolab.castor.parser=jp.terasoluna.fw.oxm.parser.DisallowDTDSecureSAXParser
と記述することで、このクラスを使用する。
NOTIFY_BUILTIN_REFS, SYMBOL_TABLE, XMLGRAMMAR_POOL
ALLOW_UE_AND_NOTATION_EVENTS, DECLARATION_HANDLER, DOM_NODE, fContentHandler, fDeclaredAttrs, fDeclHandler, fDocumentHandler, fDTDHandler, fLexicalHandler, fLexicalHandlerParameterEntities, fNamespaceContext, fNamespacePrefixes, fNamespaces, fParseInProgress, fQName, fResolveDTDURIs, fStandalone, fUseEntityResolver2, fVersion, fXMLNSURIs, LEXICAL_HANDLER, NAMESPACES, STRING_INTERNING
コンストラクタと説明 |
---|
DisallowDTDSecureSAXParser()
コンストラクタ。
|
修飾子とタイプ | メソッドと説明 |
---|---|
protected boolean |
needNotSecureMode(EntityResolver resolver)
セキュアモードである必要が無い場合にtrueを返却する。
|
protected void |
toNormalMode()
通常モードに移行する。
|
protected void |
toSecureMode()
セキュアモードに移行する。
|
backupNormalSetting, setEntityResolver
attributeDecl, characters, comment, doctypeDecl, elementDecl, endCDATA, endDocument, endDTD, endElement, endExternalSubset, endGeneralEntity, endNamespaceMapping, endParameterEntity, externalEntityDecl, getAttributePSVI, getAttributePSVIByName, getContentHandler, getDeclHandler, getDTDHandler, getElementPSVI, getEntityResolver, getErrorHandler, getFeature, getLexicalHandler, getProperty, ignorableWhitespace, internalEntityDecl, notationDecl, parse, parse, processingInstruction, reset, setContentHandler, setDeclHandler, setDocumentHandler, setDTDHandler, setErrorHandler, setFeature, setLexicalHandler, setLocale, setProperty, startCDATA, startDocument, startElement, startExternalSubset, startGeneralEntity, startNamespaceMapping, startParameterEntity, unparsedEntityDecl, xmlDecl
any, element, empty, emptyElement, endAttlist, endConditional, endContentModel, endGroup, getDocumentSource, getDTDContentModelSource, getDTDSource, ignoredCharacters, occurrence, pcdata, separator, setDocumentSource, setDTDContentModelSource, setDTDSource, startAttlist, startConditional, startContentModel, startDTD, startGroup, textDecl
public DisallowDTDSecureSAXParser() throws SAXException
SAXException
- 使用するXercesに想定外の変更がない場合、この例外は発生しない。protected boolean needNotSecureMode(EntityResolver resolver)
引数がDTDResolver(サブクラスを含む)のインスタンスであればtrue、そうでなけばfalseを返却する。
needNotSecureMode
クラス内 AbstractSecureSAXParser
resolver
- EntityResolverprotected void toSecureMode() throws SAXException
DTDを許容しない設定を行う。
toSecureMode
クラス内 AbstractSecureSAXParser
SAXException
- 使用するXercesに想定外の変更がない場合、この例外は発生しない。protected void toNormalMode() throws SAXException
DTDを許容しない設定を解除する。
toNormalMode
クラス内 AbstractSecureSAXParser
SAXException
- 使用するXercesに想定外の変更がない場合、この例外は発生しない。Copyright © 2014. All Rights Reserved.