当前位置: 首页 > 面试题库 >

Veracode XML外部实体参考(XXE)

壤驷兴朝
2023-03-14
问题内容

我在veracode报告中得到了下一个发现:XML外部实体引用(’XXE’)(CWE ID 611)的不当限制引用了下面的代码

  DocumentBuilderFactory dbf=null;      
  DocumentBuilder db = null;    
  try {         
        dbf=DocumentBuilderFactory.newInstance();  
        dbf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); 
        dbf.setExpandEntityReferences(false); 
        dbf.setXIncludeAware(false);        
        dbf.setValidating(false); 
        dbf.newDocumentBuilder();   
        InputStream stream = new ByteArrayInputStream(datosXml.getBytes());
        Document doc = db.parse(stream, "");

我一直在研究,但是我还没有找到这个发现的原因或使它消失的方法。你能告诉我怎么做吗?


问题答案:

您是否看到过有关XXE的OWASP指南?

您没有禁用应禁用的3个功能。最重要的是第一个:

dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
dbf.setFeature("http://xml.org/sax/features/external-general-entities", false);
dbf.setFeature("http://xml.org/sax/features/external-parameter-entities", false);


 类似资料:
  • 为了防止XXE攻击,我禁用了Java DocumentBuilderFactory推荐的以下功能-https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Prevention\u Cheat\u Sheet。 如果我没有将外部常规实体和外部参数实体设置为false,是否存在任何漏洞?因为当我们将disallow doctype decl设

  • 还没有学到足够的 RxJS 知识?查看其他这些超级棒的资源吧! 译者注:下面不少资源还是基于 RxJS 4,但思想是相同的 (=.=) 教程 RxJS 课程 - Egghead.io 不容错过的响应式编程介绍 2分钟告诉你什么是 Rx 学习 RxJS - @jhusain Rx 工场 响应式编程和 MVC RxJS 培训 - @andrestaltz 书籍 RxJS 实战 Rx Book Rx 介

  • 我在fortify报告中收到了第4行的XML外部实体注入安全警告。不知道如何修复它。我对SOAP、JAXB和Marshaller很陌生。 第4行(XML外部实体注入)高问题详细信息王国:输入验证和表示扫描引擎:SCA(语义) 接收器详细信息接收器:解组() 提前感谢!

  • 问题内容: 我想在我的* .xhtml页面上放一个packman游戏。(我正在使用jsf 2和primefaces 3.5) 然而, 当我“翻译” xhtml中的html页面时,此脚本出现错误: 在行: 我得到: 实体名称必须紧随实体引用中的“&”之后。 任何想法如何解决? 问题答案: 到目前为止,所有发布的答案都给出了正确的解决方案,但是没有人能够正确解释具体问题的根本原因。 Facelets是

  • 字体特定于平台。 如果您使用不同的操作系统,那么您将拥有任何网页的不同外观。 这里我们给出了各种操作系统可用的字体列表。 从版本4.0开始不推荐使用HTML 标记,现在所有字体都是使用CSS设置的。 这是设置网页主体字体的简单语法。 body { font-family: "new century schoolbook"; } or <body style = "font-family:new c

  • 字体特定于平台。 在运行不同操作系统(如Windows,Linux或Mac iOS)的不同计算机上,您将拥有不同的网页外观。 这里我们给出了各种操作系统中可用的字体列表。 从版本4.0开始不推荐使用HTML 标记,现在所有字体都是使用CSS设置的。 这是设置网页主体字体的简单语法。 body { font-family: "new century schoolbook"; } or