SCW アイコン
ヒーロー背景(区切りなし)
ブログ

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

ピーテル・デ・クレマー
2017年12月10日 掲載
最終更新日: 2026年3月9日

可扩展标记语言 (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 文档的安全性,但它们仍可用于执行各种攻击。

もっと知りたいですか?

アプリケーション・セキュリティ・リサーチャー、R&Dエンジニア、博士号取得者

もっと詳しく

Secure Code Warriorは、ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先とする文化を醸成するお手伝いをします。AppSecマネージャー、開発者、最高情報セキュリティ責任者(CISO)、あるいはセキュリティに関わるあらゆる方々の組織において、不安全なコードに関連するリスクの低減を支援します。

デモを予約する
共有する:
リンクトインのブランドソーシャルx ロゴ
作者
ピーテル・デ・クレマー
2017年12月10日発行

アプリケーション・セキュリティ・リサーチャー、R&Dエンジニア、博士号取得者

共有する:
リンクトインのブランドソーシャルx ロゴ

可扩展标记语言 (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成功アイコン
SCWエラーアイコン
フォームを送信するには、「分析」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

ウェビナーを視聴する
始めましょう
もっと詳しく

以下のリンクをクリックして、このリソースのPDFをダウンロードしてください。

Secure Code Warriorは、ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先とする文化を醸成するお手伝いをします。AppSecマネージャー、開発者、最高情報セキュリティ責任者(CISO)、あるいはセキュリティに関わるあらゆる方々の組織において、不安全なコードに関連するリスクの低減を支援します。

レポートを確認するデモを予約する
PDFをダウンロード
リソースを確認する
共有する:
リンクトインのブランドソーシャルx ロゴ
もっと知りたいですか?

共有する:
リンクトインのブランドソーシャルx ロゴ
作者
ピーテル・デ・クレマー
2017年12月10日発行

アプリケーション・セキュリティ・リサーチャー、R&Dエンジニア、博士号取得者

共有する:
リンクトインのブランドソーシャルx ロゴ

可扩展标记语言 (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をダウンロード
リソースを確認する
もっと知りたいですか?

アプリケーション・セキュリティ・リサーチャー、R&Dエンジニア、博士号取得者

もっと詳しく

Secure Code Warriorは、ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先とする文化を醸成するお手伝いをします。AppSecマネージャー、開発者、最高情報セキュリティ責任者(CISO)、あるいはセキュリティに関わるあらゆる方々の組織において、不安全なコードに関連するリスクの低減を支援します。

デモを予約するダウンロード
共有する:
リンクトインのブランドソーシャルx ロゴ
リソースセンター

入門に役立つリソース

さらに多くの投稿
リソースセンター

入門に役立つリソース

さらに多くの投稿