码迷,mamicode.com
首页 > 其他好文 > 详细

dom4j解析xml时取消DTD验证

时间:2018-07-10 22:38:51      阅读:346      评论:0      收藏:0      [点我收藏+]

标签:encoding   tar   解析   攻击   set   load   lan   注意   ati   

解决方式整合一下,就分两种:

1、用setFeature()

SAXReader reader = new SAXReader();
reader.setValidation(false); reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
...

2、用setEntityResolver()

SAXReader reader = new SAXReader();
reader.setValidation(false); reader.setEntityResolver(new EntityResolver() { @Override public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException { return new InputSource(new ByteArrayInputStream("<?xml version=‘1.0‘ encoding=‘UTF-8‘?>".getBytes())); } });
...

这个问题,平时不会去注意,这次记录的主要原因是,在做自定义xml文件解析成key-vlue的形式时,发现时间略长,影响体验,故而mark一下。

 

 

参考:
setFeature的妙用,解析XML时,外部注入预防即XXE攻击

http://xerces.apache.org/xerces-j/features.html

dom4j解析xml-取消doctype中DTD验证设置

 

 

 

 

 

dom4j解析xml时取消DTD验证

标签:encoding   tar   解析   攻击   set   load   lan   注意   ati   

原文地址:https://www.cnblogs.com/boomoom/p/9291772.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!