当前位置:  开发笔记 > 数据库 > 正文

如何避免XML注入

如何解决《如何避免XML注入》经验,为你挑选了2个好方法。

我有输入字段值用于形成XPath查询.我应该检查输入字符串中的哪些符号以尽量减少XML注入的可能性?



1> Dimitre Nova..:

文档详细描述了"Blind XPath Injection"的概念.

它提供了XPath注入的具体示例,并讨论了防止这种情况的方法.

在" 防御XPath注入 "一节中,它被说成:

" 防御XPath注入基本上类似于防止SQL注入.应用程序必须清理用户输入.具体来说,应该禁止单引号和双引号字符.这可以在应用程序本身或第三方产品中完成(例如应用程序防火墙.)测试应用程序对XPath注入的敏感性可以通过注入单引号或双引号并检查响应来轻松执行.如果发生错误,那么很可能是XPath注入."

正如其他人所说,人们也应该注意使用轴和//缩写.如果正在使用XPath 2.0,则不应允许doc()函数,因为它允许访问具有已知URI(或文件名)的任何文档.

建议使用预编译XPath表达式的API,但保留它可以使用动态定义的参数或变量.然后,用户输入将仅定义这些参数的内容,并且永远不会将其视为已编译表达式的修改.



2> Bevan..:

把你的战术颠倒过来.

不要试图过滤掉不可接受的字符 - "除非我知道它不好"的政策"假设它没问题"

相反,过滤掉可接受的字符 - 这个政策"这个东西还可以,我会假设其他一切都不好".

在安全术语中,采用"默认拒绝"策略而不是"默认接受".

例如 ...

...如果您要求某人搜索某个词,请说出一个人的名字,将输入限制为您希望在姓名中找到的字符.

一种方法是限制AZ,然后确保你的搜索技术具有重音意识(例如i =ì=í=î=ï等),尽管这取决于非欧洲命名.

...如果你要求一个数字,只限数字并拒绝其他一切.

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有