`

防止 XML外部实体注入

 
阅读更多
方式一

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
// 这是优先选择. 如果不允许DTDs (doctypes) ,几乎可以阻止所有的XML实体攻击
String FEATURE = "http://apache.org/xml/features/disallow-doctype-decl";
dbf.setFeature(FEATURE, true);

FEATURE = "http://xml.org/sax/features/external-general-entities";
dbf.setFeature(FEATURE, false);

FEATURE = "http://xml.org/sax/features/external-parameter-entities";
dbf.setFeature(FEATURE, false);

FEATURE = "http://apache.org/xml/features/nonvalidating/load-external-dtd";
dbf.setFeature(FEATURE, false);

dbf.setXIncludeAware(false);
dbf.setExpandEntityReferences(false);
org.w3c.dom.Document documentW3c = dbf.newDocumentBuilder().parse(tempFile);

方式二

JAXBContext context = JAXBContext.newInstance(klass);

XMLInputFactory xif = XMLInputFactory.newFactory();
xif.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false);
xif.setProperty(XMLInputFactory.SUPPORT_DTD, true);
XMLStreamReader xsr = xif.createXMLStreamReader(new StringReader(xml));

Unmarshaller unmarshaller = context.createUnmarshaller();
return unmarshaller.unmarshal(xsr);
分享到:
评论

相关推荐

    [Timeline Sec] - CVE-2020-29436:Nexus3 XML外部实体注入复现1

    【CVE-2020-29436:Nexus3 XML外部实体注入复现】 这篇文章主要讨论了CVE-2020-29436,这是一个针对Nexus Repository Manager 3的安全漏洞,该漏洞是由于XML外部实体注入(XXE)引起的。Nexus Repository Manager 3...

    测试XXE注入.docx

    XXE 注入(XML 外部实体注入)是一种类型的注入攻击,它会影响解析 XML 文件的应用程序。攻击者可以通过构造恶意的 XML 文件,使用外部实体来引用文件系统中的文件或网络资源,从而导致读取任意文件、执行系统命令、...

    java导出excel、xml

    在Java编程环境中,导出Excel和XML是常见的数据交换任务,尤其在数据分析、报表生成以及数据存储方面。这里我们将深入探讨如何使用Java来处理这两种格式。 1. **Java与Excel交互**: - **Apache POI库**:这是Java...

    WEB安全之XXE实体注入漏洞.pdf

    然而,XML的这种灵活性也引入了安全风险,如XXE(XML External Entity Injection,XML外部实体注入漏洞)。 **0x01 XML基础知识** XML文档由XML声明、DTD(Document Type Definition)文档类型定义(可选)和文档...

    IBM JVM参数选项

    5. **-Djdk.xml.entityExpansionLimit**: 设置XML实体展开的最大限制,以防止XML外部实体注入攻击。 - 示例:`-Djdk.xml.entityExpansionLimit=1000` 6. **-Djdk.xml.maxGeneralEntitySizeLimit**: 设置单个一般...

    WebSphere XML外部实体(XXE)注入漏洞(CVE-2020-4643)

    WebSphere 9.0.0-9.0.5.5及8.5.0.0-8.5.5.18:更新安全补丁PH27509 WebSphere 8.0.0.0-8.0.0.15:升级到8.0.0.15版本,然后更新安全补丁PH27509 WebSphere 7.0.0.0-7.0.0.45:升级到7.0.0.45版本,然后更新安全补丁...

    web安全漏洞挖掘梳理

    XXE 攻击是一种基于 XML 外部实体注入的攻击方式。攻击者可以通过构建外部实体注入来攻击 Web 应用程序。XXE 攻击可以导致本地任意文件读取、探测内网等严重的安全问题。 3.1 什么是 XXE XXE(XML External Entity...

    xxe-injection-payload-list::bullseye:XML外部实体(XXE)注入有效负载列表

    XML外部实体(XXE,XML External Entity Injection)是一种网络安全漏洞,它允许攻击者通过恶意构造的XML输入来访问和泄露服务器内部资源。XXE注入通常发生在应用解析不受信任的XML输入时,没有正确地限制XML解析器...

    WebGoat8-xxe注入漏洞分析

    3. 禁用外部实体:禁用 XML 外部实体,以防止攻击者构造特殊的 XML 实体。 4. 使用安全的 XML 解析器:使用安全的 XML 解析器,以防止攻击者构造特殊的 XML 实体。 WebGoat8 中的 XXE 注入漏洞 WebGoat8 是一个...

    CVE-2018-11788:Apache Karaf XXE漏洞(CVE-2018-11788)

    在最近对Apache Karaf的研究中,我发现其XML解析器中存在一些XXE(XML外部实体注入)漏洞。 导致解析器不正确地解析XML文档。受影响的版本Apache Karaf <= 4.2.1 Apache Karaf <= 4.1.6分析根据,Apache ...

    Having Fun with XML Hacking.docx

    XML的安全问题主要包括拒绝服务攻击、XML注入和XML外部实体注入。 拒绝服务攻击常常发生在XML解析过程中,攻击者可以通过构造大量嵌套的实体来消耗系统资源,导致程序无法正常运行。例如,攻击者可以创建一个递归...

    未知攻焉知防——XXE漏洞攻防.pdf

    XXE漏洞全称为XML External Entity Injection,即XML外部实体注入漏洞,是一种在应用程序中处理XML数据时出现的安全漏洞。本文将详细介绍XML的基础知识、XXE漏洞的攻击原理、影响以及防御措施。 XML(可扩展标记...

    XML应用防火墙技术.pdf

    XML外部实体注入(XXE)攻击是通过利用XML解析器的外部实体加载功能,来获取服务器内部敏感信息或者对服务器进行DoS攻击。XML防火墙可以通过禁用外部实体、限制实体大小、深度限制解析等方式防止XXE攻击。 跨站脚本...

    xml安全基础电子资源下载

    攻击者可以通过在XML文档中定义一个外部实体,指向系统资源,如本地文件系统或网络资源,从而获取敏感信息。防御XXE攻击的关键在于限制解析器对外部实体的访问,关闭不必要的实体解析功能,或者使用安全的解析库。 ...

    Having Fun with XML Hacking

    2. **禁用外部实体**:在解析XML时,应禁用外部实体解析,以防止XXE攻击。 3. **限制XML解析器的功能**:只启用必要的解析选项,避免不必要的功能增加风险。 4. **使用安全的库和配置**:选择已知安全的XML解析库...

    XML.Security

    XML注入是另一种常见的安全威胁,比如XXE(XML外部实体注入)和XSS(跨站脚本)。XXE攻击是通过构造恶意的XML输入,利用解析器对外部实体的不当处理,可能泄露服务器的内部信息,甚至执行远程命令。为了防御这种攻击...

    xml网络编程技术

    XML网络编程中要注意防止XXE(XML External Entity Attack,XML外部实体注入攻击)和XSS(Cross-site scripting,跨站脚本攻击)等安全问题。合理配置XML解析器,限制解析选项,可以有效防止这些攻击。 总结,XML...

    注入的代码注入的代码注入的代码注入的代码注入的代码

    5. XXE(XML外部实体注入):当应用程序解析不受信任的XML输入时,XXE攻击可能发生。攻击者利用XML解析器的外部实体功能,可能读取服务器的本地文件、发起DoS攻击,或者通过网络获取敏感信息。 6. 注入防御策略: ...

    xml安全基础

    XXE攻击则利用XML解析器对外部实体的处理,可能导致数据泄露或服务器资源耗尽。 二、XML加密 为了保护XML数据的安全,XML提供了内置的加密机制。XML加密标准(XML Encryption)允许对XML文档或其部分进行加密,确保...

    网络安全必读书:Web Hacking 101(中文2023年中文版)

    《Web Hacking 101》是一本网络安全必读书籍,这里是在2023年新整理的...十、XML 外部实体注入 十一、代码执行 十二、模板注入 十三、服务端请求伪造SSRF 十四、内存攻击 十五、漏洞报告 十六、相关工具 十七、相关资源

Global site tag (gtag.js) - Google Analytics