安全编码技术。处理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文档的安全性,它们也可以被用来进行各种攻击:文件检索、服务器端请求伪造、端口扫描或暴力强迫。