java中禁止外部实体引用的设置方法不止一种,这样就导致有些开发者修复的时候采用的错误的方法

之所以写这篇文章是有原因的!最早是有朋友在群里发了如下一个pdf,

而当时已经是2019年1月末了,应该不是2018年7月份那个引起较大轰动的alipay java sdk的了,我突然虎躯一震,该不是。。。

进去看了一下,果然是我前不久在github给WxJava提的一个cve漏洞(CVE-2018-20318),由于当时我知道这个不是阿里的官方团队(虽然项目当时已经在github上有一万多个颗星了),所以没有过多留意后续动态,结果才出了这么个幺蛾子。

言归正传,我当时发现这个漏洞后,开发人员很快就回复马上修复,于是我没有跟进了,后来才发现开发人员修复的方法有问题,于是有外国佬又提了一个cve。。

漏洞本身没什么好说的就是除了xml字符串时没有禁止引用外部实体,而开发人员第一次修复用的是这个     dbFactory.setExpandEntityReferences(false)

要知道当时官方的xxe漏洞修复方法最早也用了这个(当时阿里修改了不止一次),顾名思义上面就是禁止实体扩展引用,那为什么就不行呢?有人专门分析过,写的文章是特别长,反正我是没看很懂,大概意思是他和sun公司沟通了很久,sun说:“这个属性设置不是你们想的那样,你们都理解错了”,不承认是自己的问题也不改,就这样 这个问题就一直遗留了。

这里将正确的修复方法摆出来:

而dbFactory.setExpandEntityReferences(false) 没什么卵用!!!!

还要说下第二种方法中:XMLConstants.FEATURE_SECURE_PROCESSING   ===== "http://xml.org/sax/features/external-general-entites"

这种修复方法是可用的,而在我之前freebuf发表的文章(https://www.freebuf.com/vuls/176837.html)中,我说这种方法不可行。。。

我当时确实是测试过了的,猜测应该是eclipse当时抽风了。。。

转载于:https://www.cnblogs.com/jinqi520/p/10450553.html

java中xxe漏洞修复方法相关推荐

  1. intel服务器修复两个漏洞,英特尔处理器漏洞怎么修复 Intelcpu漏洞修复方法

    英特尔处理器漏洞怎么修复?这一次由Intel服务器CPU产品诱发的安全事故现在规模正式扩大,不少玩家朋友们都非常担忧,下面我们就来分享一下Intelcpu漏洞修复方法一览,希望对各位有所参考和帮助. ...

  2. SSL 3.0 安全漏洞修复方法

    SSL 3.0 安全漏洞修复方法 V2EX 谷歌今天披露了一个存在于 SSL 3.0 版本当中的安全漏洞,详细信息请访问: https://www.openssl.org/~bodo/ssl-pood ...

  3. 利用永恒之蓝漏洞+修复方法(MS17-010)

    文章目录 利用永恒之蓝漏洞+修复方法(MS17-010) 1.环境 2.信息收集 3.使用MSF的永恒之蓝模块 4.使用ms17_010模块,对靶机进行扫描 5.1使用ms17_010模块,对靶机进行 ...

  4. intel+漏洞+linux内核,彻彻底底的垃圾!Linux之父评Intel的CPU漏洞修复方法

    1月23日消息 此前有报道称,似乎是由于Intel方面未能及时修复此前曝光的CPU安全漏洞,Linux Kernel 4.15版本不得不选择跳票,并发布了RC9候选(上一次发布还是2011年的3.1内 ...

  5. 在java中下列描述错误的是_在 JAVA 中 , 关于类的方法 , 下列描述错误的是 ()._学小易找答案...

    [多选题]价值的特性是 [简答题]输入任一字符串,统计其中数字,字母及其它字符个数 .(25分) [填空题]1.产品整体包括哪五个基本层次 2核心层次产品最基本的层次,是产品的_____ [单选题]纸 ...

  6. java中读取文件的方法

    总结一下java中读取文件的方法: 方法一(逐行的读取文件内容): private FileReader fileReader; private BufferedReader bufferedRead ...

  7. JAVA中线程同步的方法(7种)汇总

    JAVA中线程同步的方法(7种)汇总 同步的方法: 一.同步方法 即有synchronized关键字修饰的方法. 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时, 内置锁会保护整个方法. ...

  8. CentOS bug修复指令集(阿里云漏洞修复方法)

    阿里云服务器经常会提示有漏洞,如 RHSA-2018:0423: kernel security, bug fix, and enhancement update (Moderate),如何修复呢?可 ...

  9. Java中wait和sleep方法的区别

    1.两者的区别 这两个方法来自不同的类分别是Thread和Object 最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法(锁代码块和方法锁). wait ...

最新文章

  1. springDatasolr 排序
  2. Docker使用Dockerfile脚本创建自定义镜像
  3. Serverless Live | 9 大场景带你从零实践 Serverless
  4. spring @Value注解#和$区别
  5. hive 结构metastone_深入理解hive之事务处理
  6. CF611F. New Year and Cleaning
  7. CryptographicException异常处理方法
  8. dom4j获取指定节点值_XML解析之DOM4j以及XPATH技术
  9. 理解SNS系列之二:更进一步,近观SNS
  10. jad反编译成java_反编译工具jad的使用(将*.class文件变成*.java文件,附带jad.zip包)[转]...
  11. 热点综述 | 空间组学技术如何全面解码肿瘤微环境
  12. 动态代理之Waiter案例
  13. android脚本精灵开发,触动精灵脚本开发示例代码
  14. 微信公众号申请最新流程
  15. 静态HTML旅行主题网页设计与实现——联途旅游网服务平台网(39页)html css javascript
  16. lavarel5.2中多表联查 搜索后分页
  17. 分享 75 个精选的 JavaSript 基础知识点(中)
  18. 手机放哪里辐射危害最低
  19. 佩奇:Google将投入巨资开发前瞻性…
  20. python 使用 openpyxl 批量调整字体和样式

热门文章

  1. ORA-19502: write error on file xxxxx, block number xxxx
  2. 不一样的命令行 – Windows PowerShell简介
  3. 视觉惯性SLAM:VINS-Mono
  4. 计算机艺术未来发展趋势,计算机技术对现代艺术设计的影响
  5. 什么是php递归算法_PHP递归算法(一)
  6. case when 子查询_Oracle数据库-单表查询
  7. Linux安装软件的注意事项,64位Linux下安装软件注意事项
  8. mysql配置文件没有spring_spring cloud config使用mysql存储配置文件
  9. 笔记本电脑显卡cuda_准大学生必看~千万别乱买,建议不同专业选择不同款式的笔记本电脑!...
  10. php 面试mysql,mysql中优化必读