博客

安全编码技术:XML 数据处理(第一部分)

December 10, 2017
Pieter De Cremer
终端中的代码片段,显示了包含员工姓名、职位和安全代码状态的 XML 内容。

可扩展标记语言 (XML) 是一种标记语言,用于以机器易于处理且人类可读的格式对文档进行编码。然而,这种常用的格式包含多种安全漏洞。在本系列关于 XML 的第一篇博客文章中,我将介绍如何通过使用架构来安全地处理 XML 文档。

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

格式错误的 XML 文档

格式错误的 XML 文档是指不符合 W3C XML 规范的文档。导致文档格式错误的例子包括:缺少结束标签、更改不同元素的顺序或使用禁止字符。所有这些错误都应导致致命错误,且文档不应进行任何后续处理。

为了避免因文档格式错误而导致的漏洞,您应该使用经过充分测试且遵循 W3C 规范的 XML 解析器,并且该解析器在处理格式错误的文档时不会耗费过长的时间。

无效的 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>

XML database with highlighted code showing user roles and passwords including an attacker administrator user.

此外,如果架构限制不够严格,或者其他输入验证不足,也可能导致负数、特殊小数(如 NaN 或 Infinity)或过大的数值被输入到不应出现的位置,从而引发类似的意外行为。

为避免与无效 XML 文档相关的漏洞,应定义精确且严格的 XML 架构,以防止数据验证不当带来的问题。

在下一篇博客文章中,我们将深入探讨一些针对 XML 文档的更高级攻击,例如巨型负载 (Jumbo Payloads) 以及 OWASP 十大安全漏洞中排名第四的 XXE 攻击。

在此期间,您可以在我们的门户网站上磨练或挑战您的 XML 输入验证技能。

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

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

标语

在 AI 驱动的开发成果发布前实现有效治理

评估 AI 辅助风险,在提交代码时强制执行安全编码策略,并加速整个软件开发生命周期的安全交付。

预约演示
资源库

探索更多博客

获取有关安全编码、人工智能治理和软件风险管理的专家内容。

浏览全部
案例研究
筛选标签
这是 div 块中的一段文本。

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

了解更多
案例研究
筛选标签
这是 div 块中的一段文本。

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

了解更多
案例研究
筛选标签
这是 div 块中的一段文本。

统一的安全文化:Sage 如何打造其安全倡导者项目

了解 Sage 如何通过灵活且以关系为导向的方法提升安全性,成功培养了 200 多名安全倡导者,并实现了显著的风险降低。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

2026年网络安全意识月:理解人工智能安全对企业防御至关重要

目前,大多数顶级人工智能公司已公开呼吁全球放缓人工智能的发展速度,以便安全防护措施能够跟上步伐。然而事实是,严重的安全问题已经显现。随着人工智能实施带来的经济成本和风险不断累积,无数安全领导者和高管团队正处于紧迫的境地。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

赋能要素 8:打造项目品牌

成功的安全编码项目不仅需要优质的内容。赋能要素 8 展示了如何通过品牌化将参与过程转变为一种令人向往、以地位为驱动的体验。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

每一位员工现在都处于 AI 网络安全的最前线

企业技术格局正以一种鲜有人预料到的速度发生剧变,直到为时已晚。我们已正式跨越了从人工编写代码和基础辅助编程,进入“智能体开发生命周期”(ADLC)的时代。虽然自主 AI 智能体有望在多个职能领域实现前所未有的效率,但它们也带来了全新的安全和监管风险。

了解更多

在产品发布前确保 AI 驱动的开发安全

洞察开发风险,执行安全策略,并在整个软件开发生命周期中预防漏洞。

预约演示
未找到相关项目。