mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-10-21 02:57:37 +08:00
#903 disable DOCTYPE to fix XXE Vulnerability
This commit is contained in:
@@ -189,6 +189,7 @@ public abstract class BaseWxPayResult implements Serializable {
|
||||
try {
|
||||
final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
||||
factory.setExpandEntityReferences(false);
|
||||
factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
|
||||
this.xmlDoc = factory.newDocumentBuilder()
|
||||
.parse(new ByteArrayInputStream(this.xmlString.getBytes(StandardCharsets.UTF_8)));
|
||||
return xmlDoc;
|
||||
|
@@ -75,7 +75,9 @@ public class BaseWxPayResultTest {
|
||||
@Test(expectedExceptions = {RuntimeException.class})
|
||||
public void testToMap_with_empty_xmlString() {
|
||||
WxPayOrderQueryResult result = new WxPayOrderQueryResult();
|
||||
result.setXmlString(" ");
|
||||
result.setXmlString( "<?xml version=\"1.0\" ?><!DOCTYPE doc " +
|
||||
"[<!ENTITY win SYSTEM \"file:///C:/Users/user/Documents/testdata2.txt\">]" +
|
||||
"><doc>&win;</doc>");
|
||||
Map<String, String> map = result.toMap();
|
||||
System.out.println(map);
|
||||
}
|
||||
|
Reference in New Issue
Block a user