WebLogic XML External Entity Auflösung: Gibt es einen anderen Weg, um die XML-Registry neben der Verwendung?

StackOverflow https://stackoverflow.com/questions/1209743

Frage

Wir haben eine Anwendung, die SiteMesh verwendet, und wenn WebLogic die TLD-Dateien zu analysieren versucht, sieht es die DOCTYPE Spezifikation, den Verweis auf die TLD DTD, bei „ http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd ".

Der Server kann nicht initiieren Outbound-Verbindungen zum Internet, und so kann die DTD nicht abgerufen werden, die die Bereitstellung der Anwendung fehlschlägt.

Ich verstehe, dass dieses Problem durch die Einrichtung einen XML-Registry in der WebLogic-Konsole gelöst werden kann, und eine lokale Datei angeben zurückzukehren, wenn zum Beispiel zu lösen versuchen, „ http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd ".

Gibt es eine andere Möglichkeit, den Server von Ausgehen zum Netz zur Lösung der externen Entity-Referenz zu verhindern? Durch die Verpackung der DTD mit der Anwendung und informieren irgendwie den Server für diese DTD zu suchen dort statt „da draußen“?

War es hilfreich?

Lösung

Kurze Frage versuchen Sie, diese aus Sicherheitsgründen zu tun? wie jede Art von XXE Angriff zu verhindern?

Wenn dies der Fall könnten Sie Ihre eigenen EntityResolver implementieren und zu handhaben, wie der Parser tut jede Lookup lokal oder remote.

Beispiele finden Sie hier können https: //www.securecoding .cert.org / Einmündung / pages / viewpage.action? pageId = 61702260

sonst müssen Sie die Konfigurationseigenschaften des XMLInputFactory, um die von Ihnen gewünschten Verhalten zu erhalten. javax.xml.stream.isSupportingExternalEntities und javax.xml.stream.isValidating besonders kommt nur, wenn Sie denken, Sie Validierung benötigen.

http://docs.oracle.com/ JavaEE / 5 / api / javax / xml / stream / XMLInputFactory.html

Auch den StaX Parser blicken, wenn man es sinnvoll, für Ihren Gebrauch macht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top