当前位置: 首页 > 知识库问答 >
问题:

Veracode XML外部实体参考(XXE)解组org.w3.dom.Element

佴阳辉
2023-03-14

我在解组元素时从代码扫描审计(Veracode)中收到一个XML外部实体引用(XXE)漏洞。

    public static <T> T unMarshal(org.w3c.dom.Element content, Class<T> clazz) throws JAXBException {
    JAXBContext jaxbContext = JAXBContext.newInstance(clazz);
    Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
    return (T) unmarshaller.unmarshal(content, clazz).getValue();
}

如何修复上述代码中对XML外部实体引用(' XXE ')的不当限制?

共有1个答案

暴阳州
2023-03-14

根据您的示例,您可以尝试以下代码:

public static <T> T unMarshal(org.w3c.dom.Element content, Class<T> clazz) throws JAXBException, XMLStreamException {
  JAXBContext jaxbContext = JAXBContext.newInstance(clazz);
  Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();

  XMLInputFactory xmlif = XMLInputFactory.newFactory();
  xmlif.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false);
  xmlif.setProperty(XMLInputFactory.SUPPORT_DTD, false);
  XMLStreamReader xsr = xmlif.createXMLStreamReader(content);

  return (T) unmarshaller.unmarshal(xsr, clazz).getValue();
}

我认为上述解决方案可以解决与(CWE 611)XML外部实体引用相关的问题

 类似资料:
  • 问题内容: 我在veracode报告中得到了下一个发现:XML外部实体引用(’XXE’)(CWE ID 611)的不当限制引用了下面的代码 … … 我一直在研究,但是我还没有找到这个发现的原因或使它消失的方法。你能告诉我怎么做吗? 问题答案: 您是否看到过有关XXE的OWASP指南? 您没有禁用应禁用的3个功能。最重要的是第一个:

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

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

  • 请给我一个提示,为什么我的代码不容易受到XXE的攻击。 代码: 测试用例1: 结果1: 到现在为止,一直都还不错。但是,当我尝试注入XML代码以检索本地文件的内容时: 然后什么都不打印。“test.txt”在文件结构中与我执行攻击的php文件处于同一级别。我已经尝试过了 以及 但无济于事。 test.txt: 已尝试: 没有结果。 有什么提示吗? 反映保罗·克罗维拉,这里有一个编辑: CP-ing

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

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

  • 您好,我尝试了以下代码来验证输入XML是否具有外部实体引用,但即使我提供了包含外部实体的XML输入,代码也不会引发任何异常 也可以直接在XMLReader中设置功能 两种方法都不起作用,并且没有抛出异常 如果有什么问题,请告诉我。我正在努力实现https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Prevention_Cheat_She

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