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_POOLALLOW_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, setEntityResolverattributeDecl, 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, xmlDeclany, element, empty, emptyElement, endAttlist, endConditional, endContentModel, endGroup, getDocumentSource, getDTDContentModelSource, getDTDSource, ignoredCharacters, occurrence, pcdata, separator, setDocumentSource, setDTDContentModelSource, setDTDSource, startAttlist, startConditional, startContentModel, startDTD, startGroup, textDeclpublic DisallowDTDSecureSAXParser()
throws SAXException
SAXException - 使用するXercesに想定外の変更がない場合、この例外は発生しない。protected boolean needNotSecureMode(EntityResolver resolver)
引数がDTDResolver(サブクラスを含む)のインスタンスであればtrue、そうでなけばfalseを返却する。
needNotSecureMode クラス内 AbstractSecureSAXParserresolver - EntityResolverprotected void toSecureMode()
throws SAXException
DTDを許容しない設定を行う。
toSecureMode クラス内 AbstractSecureSAXParserSAXException - 使用するXercesに想定外の変更がない場合、この例外は発生しない。protected void toNormalMode()
throws SAXException
DTDを許容しない設定を解除する。
toNormalMode クラス内 AbstractSecureSAXParserSAXException - 使用するXercesに想定外の変更がない場合、この例外は発生しない。Copyright © 2015. All Rights Reserved.