Estoy tratando de usar JAXB para desenmascarar algunos XML que utilicé xjc para crear en primer lugar. No quiero hacer ninguna validación sobre el desemparejamiento, pero a pesar de que he desactivado la validación de acuerdo con la documentación de JAXB con u.setSchema(null);
, pero esto no ha impedido que se lanzara un FileNotFoundException
cuando intenta ejecutarse y no puede encontrar el esquema.Cómo deshabilitar la recuperación DTD utilizando JAXB2.0
JAXBContext jc = JAXBContext.newInstance("blast");
Unmarshaller u = jc.createUnmarshaller();
u.setSchema(null);
return u.unmarshal(blast)
que he visto preguntas similares para deshabilitar el análisis de la validación SAX estableciendo la propiedad Apache http://apache.org/xml/features/validation/schema
a false
, pero no puedo conseguir el Unmarshaller usar mi propio analizador SAX.
eso no funcionó para mí, pero éstos hicieron: parser.setFeature ("http: //apache.org/xml/features/nonvalidating/load-external-dtd ", false); parser.setFeature ("http://xml.org/sax/features/validation", falso); – aerobiotic
aerobiotic es correcto – sura2k
[Este] (https://www.owasp.org/index.php/XML_External_Entity_ (XXE) _Prevention_Cheat_Sheet # SAXTransformerFactory) sitio web explica cómo se puede bloquear en cualquiera de los principales frameworks de Java. –