|
|
@@ -3,6 +3,7 @@ package com.fs.app.controller;
|
|
|
import com.fs.app.service.QwDataCallbackService;
|
|
|
import com.fs.qw.domain.QwCompany;
|
|
|
import com.fs.qw.mapper.QwCompanyMapper;
|
|
|
+import com.fs.common.utils.security.XmlSecurityUtils;
|
|
|
import com.fs.qwApi.util.AesException;
|
|
|
import com.fs.qwApi.util.WXBizMsgCrypt;
|
|
|
import com.fs.qwApi.util.XMLParse;
|
|
|
@@ -13,7 +14,6 @@ import org.w3c.dom.Document;
|
|
|
import org.xml.sax.InputSource;
|
|
|
|
|
|
import javax.xml.parsers.DocumentBuilder;
|
|
|
-import javax.xml.parsers.DocumentBuilderFactory;
|
|
|
import java.io.StringReader;
|
|
|
|
|
|
@RestController
|
|
|
@@ -102,8 +102,8 @@ public class QwController {
|
|
|
// 加密成功
|
|
|
// TODO: 解析出明文xml标签的内容进行处理
|
|
|
// For example:
|
|
|
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
|
|
|
- DocumentBuilder db = dbf.newDocumentBuilder();
|
|
|
+ // 禁用 DTD/外部实体,防止 XXE(不影响正常企微明文 XML 解析)
|
|
|
+ DocumentBuilder db = XmlSecurityUtils.newSafeDocumentBuilder();
|
|
|
StringReader sr = new StringReader(sMsg);
|
|
|
InputSource is = new InputSource(sr);
|
|
|
Document document = db.parse(is);
|