Sto provando a usare JAXB per smascherare un po 'di XML che ho usato xjc per creare in primo luogo. Non voglio fare alcuna convalida sullo smantellamento, ma anche se ho disabilitato la convalida secondo la documentazione JAXB con u.setSchema(null);
, ma questo non ha impedito di lanciare uno FileNotFoundException
quando tenta di eseguire e non riesce a trovare il schema.Come disabilitare il recupero DTD usando JAXB2.0
JAXBContext jc = JAXBContext.newInstance("blast");
Unmarshaller u = jc.createUnmarshaller();
u.setSchema(null);
return u.unmarshal(blast)
Ho visto domande simili per la disattivazione SAX parsing di convalida impostando la proprietà apache http://apache.org/xml/features/validation/schema
-false
, ma non riesco a ottenere l'unmarshaller usare il mio parser SAX.
che non ha funzionato per me, ma questi hanno fatto: parser.setFeature ("http: //apache.org/xml/features/nonvalidating/load-external-dtd ", false); parser.setFeature ("http://xml.org/sax/features/validation", false); – aerobiotic
aerobiotic è corretto – sura2k
[Questo] (https://www.owasp.org/index.php/XML_External_Entity_ (XXE) _Prevention_Cheat_Sheet # SAXTransformerFactory) sito Web spiega come può essere bloccato su uno dei principali framework Java. –