欢迎来到天天文库
浏览记录
ID:43993318
大小:32.00 KB
页数:3页
时间:2019-10-17
《浅谈SQL注入防范》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、浅谈SQL注入防范Web安全纷繁复杂,危害最严重的当属SQL注入(SQLInjection),是一种数据库攻击手段,也是Web应用程序漏洞存在的一种表现形式。并且SQL注入攻击技术也层出不穷,尤其是网络针对SQL注入漏洞的各种工具也推陈岀新,不断的向安全人员提出挑战,如何降低SQL注入的风险,从根木上实施SQL注入防御,成了安全人员面临的首要问题。1.SQL注入的原理所谓SQL注入攻击就是通过构建特殊的输入,这些输入往往是SQL语法中的一些组合,这些输入将作为参数传入Wbb应用程序,通过执行SQL语句而执行攻击者想要的操作,它的产生主要是由于程序对用
2、户输入的数据没有进行细致的过滤,导致非法数据的导入杳询。2.产主SQL注入原因从技术上讲,SQL注入主要有代码层注入和平台层注入,代码层是因为应用的程序员对输入的过滤不严格,执行了非法的数据查询;平台层的注入则因为数据库平台的漏洞或数据库配置不安全等原因造成的。因此SQL注入的产生一般体现在:转义字符处理不当、类型处理不当、杳询集处理不当、错课处理不当、多个提交处理不当和数据库配置不安全这儿个方面。3.SQL注入攻击的总体思路:3.1发现SQL注入的位置3.2判断后台数据库类型3.3发现Web虚拟目录3.4确定XP_CMDSHELL的可执行情况3.5
3、上传ASP木马程序3.6获取管理员权限4.SQL注入防范SQL注入攻击是最常见的攻击方式之一,所有Web框架都需要担心这种攻击,为了防范注入攻击,需耍遵循儿条非常基本的规则。4.1在构造动态SQL语句时,一定要使用类安全(type-safe)的参数加码机制。人多数的数据API(包括ADO和ADO.NET)都有这样的支持,允许指定所提供的参数的确切类型(字符串、整数、口期等),可以保证这些参数被恰当地加码(escapod/encoded),避免黑客利用。3.2再部署应用Z前,始终要做安全评审(SecurityReview)o建立一个正式的安全过程,在每
4、次做更新时,对所冇的编码做评审。3.3使用运行时保护此技术主要用于检测、减轻或防止那些不需要重编译易受攻击的应用的源代码即可部署的SQL注入。主耍是Web服务器和部署框架的软件或是针对Web或应用平台的用于修改和扩展特性的技术。当无法修改代码时,这是一种冇效的技术。常用防范方式是通过部署Web应用防火墙、入侵检测系统、数据库防火墙等进行保护。1.4确保数据库安全使用一些额外的方式强化数据库安全。首先锁定应用数据,采用最小权限登陆数据库,撤销不必耍的公共许可,使用强大的加密技术来保护頌感数据并维护审查跟踪。其次锁定数据库,对额外的系统对象锁定,约束即席
5、查询,加强对验证周边严格控制,最低权限操作系统账户并确保数据库打了最新补丁。4.5严禁在数据库里用明文存放敏感性数据。密码应该总是在单向hashed过后再存放,在默认设置下,ASP.NET2.0MembershipAPI口动进行,还同时实现了安全的SALT随机化行为。如果决定建立口己的成员数据库,要确定对数据库里的信用卡和其他私冇数据进行了加密。这样即使数据库被人入侵了,起码客户的私有数据不会被人利用。4.6编码白动化的单元测试校验数据访问层和应用程序不收SQL注入攻击。这样做有助于提供额外的安全层以及避免偶然地引进坏的安全缺陷到应用中去。4.7给访
6、问数据库的Web应用功能最低的权限。如果Web应用不需要访问某些表,那么确认它没冇访问这些表的权限。如果Web应川只需要只读的权限,那么确认禁止它的insert、update、delete等不需要的权限。4.8注入分析器的防范。很多新手从网上下载SQL通用防注入系统的程序,在需要防范的页而头部用来防止别人进行手动注入测试,可是如果通过SQL注入分析器就町以轻松跳过防注入系统并口动分析其注入点,然后只需要几分钟,管理员账户及密码就会被分析出來。SQL注入分析器并不是冲着admin管理员账号去的,而是冲着权限(如flag=l)去的。这样一來,无论管理员账
7、号怎么变都无法逃过检测。既然无法逃过检测,就设置两个账号,一个是普通的管理员账号,-•个是防止注入的账号。找一个权限最大的账号制造假象,吸引软件的检测,而这个账号里的内容是大于千字以上的中文字符,这样就会迫使软件对这个账号进行分析的时候进入负荷状态甚至因资源耗尽而死机。常川的修改数据库防范注入方法:(1)对表结构进行修改。对管理员账号字段的数据类型进行修改,文本型改成最人字段的255,密码字段也进行相同设置。(2)对表进行修改。设置管理员权限的账号放在ID1,并输入大量中文字符。(3)把真正的管理员密码放在TD2后的任何一个位置(如放在TD549上)
8、。4.9额外的部署额外的部署主要包括最小化不必要的信息泄露、配置网络访问控制、独立部署Web应用服务器和数据
此文档下载收益归作者所有