SCW Icons
hero bg no divider
Blog

安全编码技术:处理 XML 数据,第 1 部分

Pieter De Cremer
Published Dec 10, 2017
Last updated on Mar 09, 2026

可扩展标记语言 (XML) 是一种标记语言,用于以一种易于机器处理和人类可读的格式对文档进行编码。但是,这种常用的格式包含多种安全漏洞。在第一篇与 XML 相关的博客文章中,我将解释使用架构安全处理 XML 文档的基础知识。

OWASP 将与 XML 和 XML 架构相关的不同漏洞分为两类。

XML 文档格式不正确

格式错误的 XML 文档是指不符合 W3C XML 规范的文档。导致文档格式错误的一些示例包括删除结尾标签、更改不同元素的顺序或使用禁用字符。所有这些错误都应导致致命错误,并且不应对文档进行任何额外处理。

为了避免由格式错误的文档导致的漏洞,您应该使用经过良好测试的 XML 解析器,该解析器遵循 W3C 规范,处理格式错误的文档的时间不会显著延长。

无效的 XML 文档

无效的 XML 文档格式正确,但包含意外值。在这里,攻击者可以利用未正确定义 XML 架构的应用程序来识别文档是否有效。以下是文档的简单示例,如果验证不正确,可能会产生意想不到的后果。

将交易存储在 XML 数据中的网络商店:

<purchase></purchase>
<id>123</id>
<price>200</price>

而且用户只能控制该<id>值。这样,如果没有正确的对策,攻击者就有可能输入这样的内容:</id>

<purchase></purchase>
<id>123</id>
<price>0</price>
<id></id>
<price>200</price>

如果处理此文档的解析器只读取<id>和<price>标签的第一个实例,这将导致不想要的结果</price></id>。

也可能是架构不够严格,或者其他输入验证不足,因此可以在意想不到的地方输入负数、特殊小数(如 NaN 或 Infinity)或超大值,从而导致类似的意外行为。

应通过定义精确且限制性的 XML 架构来避免与无效 XML 文档相关的漏洞,以避免数据验证不当的问题。

下一篇博客文章我们将介绍一些针对XML文档的更高级的攻击,例如巨型有效载荷和令人担忧的OWASP前十名第四名XXE。

同时,您可以磨练或挑战自己在 XML 输入验证方面的技能 在我们的门户网站上。

XML 和 XML 架构的规范包括多个安全漏洞。同时,这些规范提供了保护 XML 应用程序所需的工具。尽管我们使用 XML 架构来定义 XML 文档的安全性,但它们仍可用于执行各种攻击:文件检索、服务器端请求伪造、端口扫描或暴力破解。

https://www.owasp.org/index.php/XML_Security_Cheat_Sheet

查看资源
查看资源

XML 和 XML 架构的规范包括多个安全漏洞。同时,这些规范提供了保护 XML 应用程序所需的工具。尽管我们使用 XML 架构来定义 XML 文档的安全性,但它们仍可用于执行各种攻击。

对更多感兴趣?

Application Security Researcher - R&D Engineer - PhD Candidate

learn more

Secure Code Warrior可以帮助您的组织在整个软件开发生命周期中保护代码,并营造一种将网络安全放在首位的文化。无论您是 AppSec 经理、开发人员、首席信息安全官还是任何与安全相关的人,我们都可以帮助您的组织降低与不安全代码相关的风险。

预订演示
分享到:
linkedin brandsSocialx logo
作者
Pieter De Cremer
Published Dec 10, 2017

Application Security Researcher - R&D Engineer - PhD Candidate

分享到:
linkedin brandsSocialx logo

可扩展标记语言 (XML) 是一种标记语言,用于以一种易于机器处理和人类可读的格式对文档进行编码。但是,这种常用的格式包含多种安全漏洞。在第一篇与 XML 相关的博客文章中,我将解释使用架构安全处理 XML 文档的基础知识。

OWASP 将与 XML 和 XML 架构相关的不同漏洞分为两类。

XML 文档格式不正确

格式错误的 XML 文档是指不符合 W3C XML 规范的文档。导致文档格式错误的一些示例包括删除结尾标签、更改不同元素的顺序或使用禁用字符。所有这些错误都应导致致命错误,并且不应对文档进行任何额外处理。

为了避免由格式错误的文档导致的漏洞,您应该使用经过良好测试的 XML 解析器,该解析器遵循 W3C 规范,处理格式错误的文档的时间不会显著延长。

无效的 XML 文档

无效的 XML 文档格式正确,但包含意外值。在这里,攻击者可以利用未正确定义 XML 架构的应用程序来识别文档是否有效。以下是文档的简单示例,如果验证不正确,可能会产生意想不到的后果。

将交易存储在 XML 数据中的网络商店:

<purchase></purchase>
<id>123</id>
<price>200</price>

而且用户只能控制该<id>值。这样,如果没有正确的对策,攻击者就有可能输入这样的内容:</id>

<purchase></purchase>
<id>123</id>
<price>0</price>
<id></id>
<price>200</price>

如果处理此文档的解析器只读取<id>和<price>标签的第一个实例,这将导致不想要的结果</price></id>。

也可能是架构不够严格,或者其他输入验证不足,因此可以在意想不到的地方输入负数、特殊小数(如 NaN 或 Infinity)或超大值,从而导致类似的意外行为。

应通过定义精确且限制性的 XML 架构来避免与无效 XML 文档相关的漏洞,以避免数据验证不当的问题。

下一篇博客文章我们将介绍一些针对XML文档的更高级的攻击,例如巨型有效载荷和令人担忧的OWASP前十名第四名XXE。

同时,您可以磨练或挑战自己在 XML 输入验证方面的技能 在我们的门户网站上。

XML 和 XML 架构的规范包括多个安全漏洞。同时,这些规范提供了保护 XML 应用程序所需的工具。尽管我们使用 XML 架构来定义 XML 文档的安全性,但它们仍可用于执行各种攻击:文件检索、服务器端请求伪造、端口扫描或暴力破解。

https://www.owasp.org/index.php/XML_Security_Cheat_Sheet

查看资源
查看资源

填写下面的表格下载报告

我们希望获得您的许可,以便向您发送有关我们的产品和/或相关安全编码主题的信息。我们将始终非常谨慎地对待您的个人信息,绝不会出于营销目的将其出售给其他公司。

提交
scw success icon
scw error icon
要提交表单,请启用 “分析” Cookie。完成后,可以随意再次禁用它们。

可扩展标记语言 (XML) 是一种标记语言,用于以一种易于机器处理和人类可读的格式对文档进行编码。但是,这种常用的格式包含多种安全漏洞。在第一篇与 XML 相关的博客文章中,我将解释使用架构安全处理 XML 文档的基础知识。

OWASP 将与 XML 和 XML 架构相关的不同漏洞分为两类。

XML 文档格式不正确

格式错误的 XML 文档是指不符合 W3C XML 规范的文档。导致文档格式错误的一些示例包括删除结尾标签、更改不同元素的顺序或使用禁用字符。所有这些错误都应导致致命错误,并且不应对文档进行任何额外处理。

为了避免由格式错误的文档导致的漏洞,您应该使用经过良好测试的 XML 解析器,该解析器遵循 W3C 规范,处理格式错误的文档的时间不会显著延长。

无效的 XML 文档

无效的 XML 文档格式正确,但包含意外值。在这里,攻击者可以利用未正确定义 XML 架构的应用程序来识别文档是否有效。以下是文档的简单示例,如果验证不正确,可能会产生意想不到的后果。

将交易存储在 XML 数据中的网络商店:

<purchase></purchase>
<id>123</id>
<price>200</price>

而且用户只能控制该<id>值。这样,如果没有正确的对策,攻击者就有可能输入这样的内容:</id>

<purchase></purchase>
<id>123</id>
<price>0</price>
<id></id>
<price>200</price>

如果处理此文档的解析器只读取<id>和<price>标签的第一个实例,这将导致不想要的结果</price></id>。

也可能是架构不够严格,或者其他输入验证不足,因此可以在意想不到的地方输入负数、特殊小数(如 NaN 或 Infinity)或超大值,从而导致类似的意外行为。

应通过定义精确且限制性的 XML 架构来避免与无效 XML 文档相关的漏洞,以避免数据验证不当的问题。

下一篇博客文章我们将介绍一些针对XML文档的更高级的攻击,例如巨型有效载荷和令人担忧的OWASP前十名第四名XXE。

同时,您可以磨练或挑战自己在 XML 输入验证方面的技能 在我们的门户网站上。

XML 和 XML 架构的规范包括多个安全漏洞。同时,这些规范提供了保护 XML 应用程序所需的工具。尽管我们使用 XML 架构来定义 XML 文档的安全性,但它们仍可用于执行各种攻击:文件检索、服务器端请求伪造、端口扫描或暴力破解。

https://www.owasp.org/index.php/XML_Security_Cheat_Sheet

观看网络研讨会
开始吧
learn more

点击下面的链接并下载此资源的PDF。

Secure Code Warrior可以帮助您的组织在整个软件开发生命周期中保护代码,并营造一种将网络安全放在首位的文化。无论您是 AppSec 经理、开发人员、首席信息安全官还是任何与安全相关的人,我们都可以帮助您的组织降低与不安全代码相关的风险。

查看报告预订演示
查看资源
分享到:
linkedin brandsSocialx logo
对更多感兴趣?

分享到:
linkedin brandsSocialx logo
作者
Pieter De Cremer
Published Dec 10, 2017

Application Security Researcher - R&D Engineer - PhD Candidate

分享到:
linkedin brandsSocialx logo

可扩展标记语言 (XML) 是一种标记语言,用于以一种易于机器处理和人类可读的格式对文档进行编码。但是,这种常用的格式包含多种安全漏洞。在第一篇与 XML 相关的博客文章中,我将解释使用架构安全处理 XML 文档的基础知识。

OWASP 将与 XML 和 XML 架构相关的不同漏洞分为两类。

XML 文档格式不正确

格式错误的 XML 文档是指不符合 W3C XML 规范的文档。导致文档格式错误的一些示例包括删除结尾标签、更改不同元素的顺序或使用禁用字符。所有这些错误都应导致致命错误,并且不应对文档进行任何额外处理。

为了避免由格式错误的文档导致的漏洞,您应该使用经过良好测试的 XML 解析器,该解析器遵循 W3C 规范,处理格式错误的文档的时间不会显著延长。

无效的 XML 文档

无效的 XML 文档格式正确,但包含意外值。在这里,攻击者可以利用未正确定义 XML 架构的应用程序来识别文档是否有效。以下是文档的简单示例,如果验证不正确,可能会产生意想不到的后果。

将交易存储在 XML 数据中的网络商店:

<purchase></purchase>
<id>123</id>
<price>200</price>

而且用户只能控制该<id>值。这样,如果没有正确的对策,攻击者就有可能输入这样的内容:</id>

<purchase></purchase>
<id>123</id>
<price>0</price>
<id></id>
<price>200</price>

如果处理此文档的解析器只读取<id>和<price>标签的第一个实例,这将导致不想要的结果</price></id>。

也可能是架构不够严格,或者其他输入验证不足,因此可以在意想不到的地方输入负数、特殊小数(如 NaN 或 Infinity)或超大值,从而导致类似的意外行为。

应通过定义精确且限制性的 XML 架构来避免与无效 XML 文档相关的漏洞,以避免数据验证不当的问题。

下一篇博客文章我们将介绍一些针对XML文档的更高级的攻击,例如巨型有效载荷和令人担忧的OWASP前十名第四名XXE。

同时,您可以磨练或挑战自己在 XML 输入验证方面的技能 在我们的门户网站上。

XML 和 XML 架构的规范包括多个安全漏洞。同时,这些规范提供了保护 XML 应用程序所需的工具。尽管我们使用 XML 架构来定义 XML 文档的安全性,但它们仍可用于执行各种攻击:文件检索、服务器端请求伪造、端口扫描或暴力破解。

https://www.owasp.org/index.php/XML_Security_Cheat_Sheet

目录

下载PDF
查看资源
对更多感兴趣?

Application Security Researcher - R&D Engineer - PhD Candidate

learn more

Secure Code Warrior可以帮助您的组织在整个软件开发生命周期中保护代码,并营造一种将网络安全放在首位的文化。无论您是 AppSec 经理、开发人员、首席信息安全官还是任何与安全相关的人,我们都可以帮助您的组织降低与不安全代码相关的风险。

预订演示下载
分享到:
linkedin brandsSocialx logo
资源中心

帮助您入门的资源

更多帖子
资源中心

帮助您入门的资源

更多帖子