问:XPath注入攻击与SQL注入攻击有什么不同?SQL注入攻击能够缓解防御XPath注入攻击的技术吗? 答:XPath (XML路径语言) 1.0是一种表达语言。许多应用程序根据XML文件的内容使用这种语言进行操作。 一个XML文件可以当作一个数据库,XPath查询用来访问这个文件中的数据。使用XML数据库而不使用传统的数据库的好处包括可移植性、兼容性、重复使用性和结构化表现等。
虽然XPath语言表达的句法与SQL查询在许多方面都有些相似,但是,XPath注入比SQL注入更加危险。当Web应用程序在没有验证用户提供的数据的情况下构建一个XPath查询的时候,XPath注入就可以利用……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
问:XPath注入攻击与SQL注入攻击有什么不同?SQL注入攻击能够缓解防御XPath注入攻击的技术吗?
答:XPath (XML路径语言) 1.0是一种表达语言。许多应用程序根据XML文件的内容使用这种语言进行操作。 一个XML文件可以当作一个数据库,XPath查询用来访问这个文件中的数据。使用XML数据库而不使用传统的数据库的好处包括可移植性、兼容性、重复使用性和结构化表现等。
虽然XPath语言表达的句法与SQL查询在许多方面都有些相似,但是,XPath注入比SQL注入更加危险。当Web应用程序在没有验证用户提供的数据的情况下构建一个XPath查询的时候,XPath注入就可以利用这些应用程序。一个攻击者能够向一个查询注入数据,从而改变其语义。通过嵌入一系列布尔查询(能够产生一个“真”或者“假”值的精心制作的表达方式),攻击者能够重复查看这个文件的全部节点。使用这个技术,甚至一个事先不知道XPath查询的攻击者也能够提取一个完整的XML数据库文件。
大多数数据库都提供了某种形式的访问和权限控制,限制用户访问某些表格、字段或者查询。这种限制一般是限制攻击者访问应用程序的数据库账户。XPath没有为数据库文件提供访问限制,因此,攻击者能够查询这个数据库中的全部XML对象。此外,由于XPath是一种标准的语言,攻击者能够创建一种适用于任何基于XPath的应用程序的自动攻击工具。由于SAL的许多变量,SAL注入攻击必须针对正在被攻击的目标的特定版本的SQL进行客户化。
用来防御SAL注入攻击的措施实际上有助于防御XPath注入攻击。要进行评估,下面是一些可以采取的防御步骤。首先,你的应用程序必须验证和清洁用户输入的全部内容。第二,在你的脚本、数据访问常规性工作和XPath查询使用这个数据之前,你要假设全部数据都来自不可信赖的来源。值得指出的是仅在服务器端进行验证而不在客户端进行验证是没有用的,因为客户端验证很容易被绕过去。遗憾的是没有一个原始的相应的XPath来设置查询的参数。因此,XPath查询不得不使用字符串构造技术。这就使验证用户提供的全部输入内容更为重要。测试你的应用程序是否容易受到XPath注入攻击是容易的。仅仅在发给你的服务器的数据中增加一个引号,看看是否会出现错误。如果出现了错误,那就表明可能出现了XPath注入攻击。XPath 2.0技术规范目前正在万维网联盟(W3C)批准程序的最后阶段。这个技术规范提供了一套极大地扩展了的功能和能力,但是遗憾的是没有增加安全功能。
作者
Mike Chapple, CISSP,University of Notre Dame的IT安全专家。他曾担任国家安全局和美国空军的信息安全研究员。Mike经常为SearchSecurity.com撰稿,是《信息安全》杂志的技术编辑。
相关推荐
-
金融数据如何实现安全自主可控?
金融行业核心软硬件如操作系统、数据库、存储等普遍来自国外,国产化率较低,自主可控的压力较大,存在着难以预知的安全风险……
-
山石网科:防护方案力保web安全
山石网科采用了基于语法分析的方式进行检测。任何企图进行SQL注入或跨站脚本攻击的数据,不管形式如何变化,都必须满足SQL和HTML语法的规定。
-
迈克菲发布新版数据中心安全套件
迈克菲宣布推出四款新版数据中心安全套件,旨在帮助确保数据中心服务器和数据库的安全,这些套件将白名单、黑名单以及虚拟化技术相结合。
-
利用网络防止Oracle TNS Listener毒药攻击
虽然Oracle TNS Listener毒药攻击已经存在很久,但甲骨文公司到目前为止只公布了对它的解决方法,并没有针对它的补丁。