安全编码技术。处理XML数据,第一部分
可扩展标记语言(XML)是一种标记语言,用于对文件进行编码,其格式既便于机器处理又便于人类阅读。然而,这种常用的格式包括多种安全缺陷。在这篇与XML有关的第一篇博文中,我将解释通过使用模式安全处理XML文档的基本知识。
OWASP将与XML和XML模式有关的不同漏洞分为两类。
畸形的XML文件
畸形的XML文档是不遵循W3C XML规范的文档。导致畸形文档的一些例子是删除了一个结尾标签,改变了不同元素的顺序或使用了禁止的字符。所有这些错误都应该导致一个致命的错误,并且该文档不应该进行任何额外的处理。
为了避免由畸形文档引起的漏洞,你应该使用一个经过良好测试的XML解析器,该解析器遵循W3C规范,处理畸形文档的时间不会明显延长。
无效的XML文件
无效的XML文档形成得很好,但包含了意想不到的值。在这里,攻击者可能会利用那些没有正确定义XML模式的应用程序来识别文档是否有效。下面你可以找到一个简单的例子,如果不正确验证,可能会产生意想不到的后果。
一个网络商店,以XML数据存储其交易。
<purchase></purchase>
<id>123</id>
<price>200</price>
And the user only has control over the <id> value. It is then possible, without the right counter measures, for an attacker to input something like this:</id>
<purchase></purchase>
<id>123</id>
<price>0</price>
<id></id>
<price>200</price>
If the parser that processes this document only reads the first instance of the <id> and <price> tags this will lead to unwanted results. </price></id>

也有可能是模式的限制性不够,或者其他输入验证不充分,所以负数、特殊小数(如NaN或Infinity)或过大的数值可以被输入到不期望的地方,导致类似的非预期行为。
避免与无效的XML文档有关的漏洞应该通过定义精确和限制性的XML Schema来完成,以避免数据验证不当的问题。
下一篇博文我们将讨论一些针对XML文档的更高级的攻击,如Jumbo Payloads和令人恐惧的OWASP十大排名第四的XXE。
同时,你可以在我们的门户网站上磨练或挑战你在XML输入验证方面的技能。
XML和XML模式的规范包括多种安全缺陷。同时,这些规范提供了保护XML应用所需的工具。即使我们使用XML模式来定义XML文档的安全性,它们也可以被用来进行各种攻击:文件检索、服务器端请求伪造、端口扫描或暴力强迫。


可扩展标记语言(XML)是一种标记语言,用于对文件进行编码,其格式既便于机器处理又便于人类阅读。然而,这种常用的格式包括多种安全缺陷。在这篇与XML有关的第一篇博文中,我将解释通过使用模式安全处理XML文档的基本知识。
OWASP将与XML和XML模式有关的不同漏洞分为两类。
畸形的XML文件
畸形的XML文档是不遵循W3C XML规范的文档。导致畸形文档的一些例子是删除了一个结尾标签,改变了不同元素的顺序或使用了禁止的字符。所有这些错误都应该导致一个致命的错误,并且该文档不应该进行任何额外的处理。
为了避免由畸形文档引起的漏洞,你应该使用一个经过良好测试的XML解析器,该解析器遵循W3C规范,处理畸形文档的时间不会明显延长。
无效的XML文件
无效的XML文档形成得很好,但包含了意想不到的值。在这里,攻击者可能会利用那些没有正确定义XML模式的应用程序来识别文档是否有效。下面你可以找到一个简单的例子,如果不正确验证,可能会产生意想不到的后果。
一个网络商店,以XML数据存储其交易。
<purchase></purchase>
<id>123</id>
<price>200</price>
And the user only has control over the <id> value. It is then possible, without the right counter measures, for an attacker to input something like this:</id>
<purchase></purchase>
<id>123</id>
<price>0</price>
<id></id>
<price>200</price>
If the parser that processes this document only reads the first instance of the <id> and <price> tags this will lead to unwanted results. </price></id>

也有可能是模式的限制性不够,或者其他输入验证不充分,所以负数、特殊小数(如NaN或Infinity)或过大的数值可以被输入到不期望的地方,导致类似的非预期行为。
避免与无效的XML文档有关的漏洞应该通过定义精确和限制性的XML Schema来完成,以避免数据验证不当的问题。
下一篇博文我们将讨论一些针对XML文档的更高级的攻击,如Jumbo Payloads和令人恐惧的OWASP十大排名第四的XXE。
同时,你可以在我们的门户网站上磨练或挑战你在XML输入验证方面的技能。
XML和XML模式的规范包括多种安全缺陷。同时,这些规范提供了保护XML应用所需的工具。即使我们使用XML模式来定义XML文档的安全性,它们也可以被用来进行各种攻击:文件检索、服务器端请求伪造、端口扫描或暴力强迫。

可扩展标记语言(XML)是一种标记语言,用于对文件进行编码,其格式既便于机器处理又便于人类阅读。然而,这种常用的格式包括多种安全缺陷。在这篇与XML有关的第一篇博文中,我将解释通过使用模式安全处理XML文档的基本知识。
OWASP将与XML和XML模式有关的不同漏洞分为两类。
畸形的XML文件
畸形的XML文档是不遵循W3C XML规范的文档。导致畸形文档的一些例子是删除了一个结尾标签,改变了不同元素的顺序或使用了禁止的字符。所有这些错误都应该导致一个致命的错误,并且该文档不应该进行任何额外的处理。
为了避免由畸形文档引起的漏洞,你应该使用一个经过良好测试的XML解析器,该解析器遵循W3C规范,处理畸形文档的时间不会明显延长。
无效的XML文件
无效的XML文档形成得很好,但包含了意想不到的值。在这里,攻击者可能会利用那些没有正确定义XML模式的应用程序来识别文档是否有效。下面你可以找到一个简单的例子,如果不正确验证,可能会产生意想不到的后果。
一个网络商店,以XML数据存储其交易。
<purchase></purchase>
<id>123</id>
<price>200</price>
And the user only has control over the <id> value. It is then possible, without the right counter measures, for an attacker to input something like this:</id>
<purchase></purchase>
<id>123</id>
<price>0</price>
<id></id>
<price>200</price>
If the parser that processes this document only reads the first instance of the <id> and <price> tags this will lead to unwanted results. </price></id>

也有可能是模式的限制性不够,或者其他输入验证不充分,所以负数、特殊小数(如NaN或Infinity)或过大的数值可以被输入到不期望的地方,导致类似的非预期行为。
避免与无效的XML文档有关的漏洞应该通过定义精确和限制性的XML Schema来完成,以避免数据验证不当的问题。
下一篇博文我们将讨论一些针对XML文档的更高级的攻击,如Jumbo Payloads和令人恐惧的OWASP十大排名第四的XXE。
同时,你可以在我们的门户网站上磨练或挑战你在XML输入验证方面的技能。
XML和XML模式的规范包括多种安全缺陷。同时,这些规范提供了保护XML应用所需的工具。即使我们使用XML模式来定义XML文档的安全性,它们也可以被用来进行各种攻击:文件检索、服务器端请求伪造、端口扫描或暴力强迫。
可扩展标记语言(XML)是一种标记语言,用于对文件进行编码,其格式既便于机器处理又便于人类阅读。然而,这种常用的格式包括多种安全缺陷。在这篇与XML有关的第一篇博文中,我将解释通过使用模式安全处理XML文档的基本知识。
OWASP将与XML和XML模式有关的不同漏洞分为两类。
畸形的XML文件
畸形的XML文档是不遵循W3C XML规范的文档。导致畸形文档的一些例子是删除了一个结尾标签,改变了不同元素的顺序或使用了禁止的字符。所有这些错误都应该导致一个致命的错误,并且该文档不应该进行任何额外的处理。
为了避免由畸形文档引起的漏洞,你应该使用一个经过良好测试的XML解析器,该解析器遵循W3C规范,处理畸形文档的时间不会明显延长。
无效的XML文件
无效的XML文档形成得很好,但包含了意想不到的值。在这里,攻击者可能会利用那些没有正确定义XML模式的应用程序来识别文档是否有效。下面你可以找到一个简单的例子,如果不正确验证,可能会产生意想不到的后果。
一个网络商店,以XML数据存储其交易。
<purchase></purchase>
<id>123</id>
<price>200</price>
And the user only has control over the <id> value. It is then possible, without the right counter measures, for an attacker to input something like this:</id>
<purchase></purchase>
<id>123</id>
<price>0</price>
<id></id>
<price>200</price>
If the parser that processes this document only reads the first instance of the <id> and <price> tags this will lead to unwanted results. </price></id>

也有可能是模式的限制性不够,或者其他输入验证不充分,所以负数、特殊小数(如NaN或Infinity)或过大的数值可以被输入到不期望的地方,导致类似的非预期行为。
避免与无效的XML文档有关的漏洞应该通过定义精确和限制性的XML Schema来完成,以避免数据验证不当的问题。
下一篇博文我们将讨论一些针对XML文档的更高级的攻击,如Jumbo Payloads和令人恐惧的OWASP十大排名第四的XXE。
同时,你可以在我们的门户网站上磨练或挑战你在XML输入验证方面的技能。
XML和XML模式的规范包括多种安全缺陷。同时,这些规范提供了保护XML应用所需的工具。即使我们使用XML模式来定义XML文档的安全性,它们也可以被用来进行各种攻击:文件检索、服务器端请求伪造、端口扫描或暴力强迫。
资源
安全技能基准测试:简化企业安全设计
寻找有关 "按设计确保安全 "计划成功与否的有意义的数据是众所周知的难题。首席信息安全官(CISO)在试图证明投资回报率(ROI)和安全计划活动在人员和公司层面上的商业价值时,往往会面临挑战。更不用说,企业要深入了解自己的组织是如何以当前的行业标准为基准的,更是难上加难。美国总统的《国家网络安全战略》向利益相关者提出了 "通过设计实现安全和弹性 "的挑战。让 "按设计保证安全 "计划发挥作用的关键不仅在于为开发人员提供确保代码安全的技能,还在于向监管机构保证这些技能已经到位。在本演讲中,我们将分享大量定性和定量数据,这些数据来自多个主要来源,包括从超过 25 万名开发人员那里收集的内部数据点、数据驱动的客户洞察力以及公共研究。利用这些数据点的汇总,我们旨在传达一个跨多个垂直领域的 "按设计保证安全 "计划的现状。报告详细阐述了这一领域目前未得到充分利用的原因、成功的技能提升计划对降低网络安全风险的重大影响,以及消除代码库中各类漏洞的潜力。