微信支付-XXE DOM4J

PYJJ 2018-07-06 09:23:34
像DocumentBuilderFactory 可以通过设置FEATURE控制外部实体引用
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
String FEATURE = "http://apache.org/xml/features/disallow-doctype-decl";
dbf.setFeature(FEATURE, true);

那么,DOM4J如何做到禁用外部实体引用?
...全文
1452 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
PYJJ 2018-07-10
  • 打赏
  • 举报
回复
引用 14 楼 lzy_lizhiyang 的回复:
[quote=引用 12 楼 chengdao1204 的回复:]
[quote=引用 8 楼 networkit 的回复:]
[quote=引用 7 楼 chengdao1204 的回复:]
[quote=引用 2 楼 lzy_lizhiyang 的回复:]
SAXReader reader = new SAXReader();
reader.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);

报错啊
Exception in thread "main" java.lang.RuntimeException: org.xml.sax.SAXNotRecognizedException: SAX feature 'http://apache.org/xml/features/disallow-doctype-decl' not recognized.
at com.web.wechat.plugins.PayUtil.doXMLParse(PayUtil.java:166)
at com.web.wechat.plugins.PayUtil.main(PayUtil.java:305)
Caused by: org.xml.sax.SAXNotRecognizedException: SAX feature 'http://apache.org/xml/features/disallow-doctype-decl' not recognized.
at oracle.xml.parser.v2.NonValidatingParser.setFeature(NonValidatingParser.java:1968)
at oracle.xml.parser.v2.SAXParser.setFeature(SAXParser.java:270)
at org.dom4j.io.SAXReader.setFeature(SAXReader.java:218)
at com.web.wechat.plugins.PayUtil.doXMLParse(PayUtil.java:157)
... 1 more
[/quote]

我试了是可以哦,没有报错,你用的是什么版本?[/quote]


我访问这些地址都是404的,http://apache.org/xml/features/disallow-doctype-decl 你能访问嘛?[/quote]

不能访问不影响使用的。从你报错的日志来看,使用了oracle的xml解析,可以把这个jar包剔除,只使用dom4j即可。[/quote]

谢谢 是这样的 翻遍了所有xml的jar找到了这玩意 xmlparserv2.jar
u010364702 2018-07-09
  • 打赏
  • 举报
回复
走过,路过!
PYJJ 2018-07-09
  • 打赏
  • 举报
回复
引用 8 楼 networkit 的回复:
[quote=引用 7 楼 chengdao1204 的回复:]
[quote=引用 2 楼 lzy_lizhiyang 的回复:]
SAXReader reader = new SAXReader();
reader.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);

报错啊
Exception in thread "main" java.lang.RuntimeException: org.xml.sax.SAXNotRecognizedException: SAX feature 'http://apache.org/xml/features/disallow-doctype-decl' not recognized.
at com.web.wechat.plugins.PayUtil.doXMLParse(PayUtil.java:166)
at com.web.wechat.plugins.PayUtil.main(PayUtil.java:305)
Caused by: org.xml.sax.SAXNotRecognizedException: SAX feature 'http://apache.org/xml/features/disallow-doctype-decl' not recognized.
at oracle.xml.parser.v2.NonValidatingParser.setFeature(NonValidatingParser.java:1968)
at oracle.xml.parser.v2.SAXParser.setFeature(SAXParser.java:270)
at org.dom4j.io.SAXReader.setFeature(SAXReader.java:218)
at com.web.wechat.plugins.PayUtil.doXMLParse(PayUtil.java:157)
... 1 more
[/quote]

我试了是可以哦,没有报错,你用的是什么版本?[/quote]


我访问这些地址都是404的,http://apache.org/xml/features/disallow-doctype-decl 你能访问嘛?
PYJJ 2018-07-09
  • 打赏
  • 举报
回复
引用 8 楼 networkit 的回复:
[quote=引用 7 楼 chengdao1204 的回复:]
[quote=引用 2 楼 lzy_lizhiyang 的回复:]
SAXReader reader = new SAXReader();
reader.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);

报错啊
Exception in thread "main" java.lang.RuntimeException: org.xml.sax.SAXNotRecognizedException: SAX feature 'http://apache.org/xml/features/disallow-doctype-decl' not recognized.
at com.web.wechat.plugins.PayUtil.doXMLParse(PayUtil.java:166)
at com.web.wechat.plugins.PayUtil.main(PayUtil.java:305)
Caused by: org.xml.sax.SAXNotRecognizedException: SAX feature 'http://apache.org/xml/features/disallow-doctype-decl' not recognized.
at oracle.xml.parser.v2.NonValidatingParser.setFeature(NonValidatingParser.java:1968)
at oracle.xml.parser.v2.SAXParser.setFeature(SAXParser.java:270)
at org.dom4j.io.SAXReader.setFeature(SAXReader.java:218)
at com.web.wechat.plugins.PayUtil.doXMLParse(PayUtil.java:157)
... 1 more
[/quote]

我试了是可以哦,没有报错,你用的是什么版本?[/quote]


dom4j1.6.1
在远行的路上 2018-07-09
  • 打赏
  • 举报
回复
引用 12 楼 chengdao1204 的回复:
[quote=引用 8 楼 networkit 的回复:]
[quote=引用 7 楼 chengdao1204 的回复:]
[quote=引用 2 楼 lzy_lizhiyang 的回复:]
SAXReader reader = new SAXReader();
reader.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);

报错啊
Exception in thread "main" java.lang.RuntimeException: org.xml.sax.SAXNotRecognizedException: SAX feature 'http://apache.org/xml/features/disallow-doctype-decl' not recognized.
at com.web.wechat.plugins.PayUtil.doXMLParse(PayUtil.java:166)
at com.web.wechat.plugins.PayUtil.main(PayUtil.java:305)
Caused by: org.xml.sax.SAXNotRecognizedException: SAX feature 'http://apache.org/xml/features/disallow-doctype-decl' not recognized.
at oracle.xml.parser.v2.NonValidatingParser.setFeature(NonValidatingParser.java:1968)
at oracle.xml.parser.v2.SAXParser.setFeature(SAXParser.java:270)
at org.dom4j.io.SAXReader.setFeature(SAXReader.java:218)
at com.web.wechat.plugins.PayUtil.doXMLParse(PayUtil.java:157)
... 1 more
[/quote]

我试了是可以哦,没有报错,你用的是什么版本?[/quote]


我访问这些地址都是404的,http://apache.org/xml/features/disallow-doctype-decl 你能访问嘛?[/quote]

不能访问不影响使用的。从你报错的日志来看,使用了oracle的xml解析,可以把这个jar包剔除,只使用dom4j即可。
PYJJ 2018-07-06
  • 打赏
  • 举报
回复
引用 2 楼 lzy_lizhiyang 的回复:
SAXReader reader = new SAXReader();
reader.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);

报错啊
Exception in thread "main" java.lang.RuntimeException: org.xml.sax.SAXNotRecognizedException: SAX feature 'http://apache.org/xml/features/disallow-doctype-decl' not recognized.
at com.web.wechat.plugins.PayUtil.doXMLParse(PayUtil.java:166)
at com.web.wechat.plugins.PayUtil.main(PayUtil.java:305)
Caused by: org.xml.sax.SAXNotRecognizedException: SAX feature 'http://apache.org/xml/features/disallow-doctype-decl' not recognized.
at oracle.xml.parser.v2.NonValidatingParser.setFeature(NonValidatingParser.java:1968)
at oracle.xml.parser.v2.SAXParser.setFeature(SAXParser.java:270)
at org.dom4j.io.SAXReader.setFeature(SAXReader.java:218)
at com.web.wechat.plugins.PayUtil.doXMLParse(PayUtil.java:157)
... 1 more
PYJJ 2018-07-06
  • 打赏
  • 举报
回复
引用 3 楼 networkit 的回复:
我们直接用了dom4j自带的DocumentHelper,封闭了SAXReader里面,设置不了
估计要自己封闭一层了
我就是头大在这里
PYJJ 2018-07-06
  • 打赏
  • 举报
回复
verejava 2018-07-06
  • 打赏
  • 举报
回复
Java XML解析 之 读取,添加,删除,修改

http://www.verejava.com/?id=16995144631335
networkit 2018-07-06
  • 打赏
  • 举报
回复
我们直接用了dom4j自带的DocumentHelper,封闭了SAXReader里面,设置不了
估计要自己封闭一层了
在远行的路上 2018-07-06
  • 打赏
  • 举报
回复
SAXReader reader = new SAXReader();
reader.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
networkit 2018-07-06
  • 打赏
  • 举报
回复
帮顶,也正在研究这个问题,有结果告诉你,楼主有结果公布一下
我这边除了dom4j,还有个org.nuxeo.common.xmap.XMap的
networkit 2018-07-06
  • 打赏
  • 举报
回复
引用 7 楼 chengdao1204 的回复:
[quote=引用 2 楼 lzy_lizhiyang 的回复:]
SAXReader reader = new SAXReader();
reader.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);

报错啊
Exception in thread "main" java.lang.RuntimeException: org.xml.sax.SAXNotRecognizedException: SAX feature 'http://apache.org/xml/features/disallow-doctype-decl' not recognized.
at com.web.wechat.plugins.PayUtil.doXMLParse(PayUtil.java:166)
at com.web.wechat.plugins.PayUtil.main(PayUtil.java:305)
Caused by: org.xml.sax.SAXNotRecognizedException: SAX feature 'http://apache.org/xml/features/disallow-doctype-decl' not recognized.
at oracle.xml.parser.v2.NonValidatingParser.setFeature(NonValidatingParser.java:1968)
at oracle.xml.parser.v2.SAXParser.setFeature(SAXParser.java:270)
at org.dom4j.io.SAXReader.setFeature(SAXReader.java:218)
at com.web.wechat.plugins.PayUtil.doXMLParse(PayUtil.java:157)
... 1 more
[/quote]

我试了是可以哦,没有报错,你用的是什么版本?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧