欢迎来到天天文库
浏览记录
ID:46612976
大小:61.00 KB
页数:4页
时间:2019-11-26
《NET网站防SQL注入方法探究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、.NET网站防SQL注入方法探究【摘要]SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。文章简要介绍了基于ASRNET网站的SQL注入原理,总结出了一套相关的比较有效的防御方案,并加以较为详细的阐述。【关键词】ASRNET;SQL注入;防SQL注入中图分类号:TP39文献标识码:A文章编号:1006-0278(2013)01-088-01一、引言随着互联网技术的发展,网络应用越来越普及,各大企事业单位都建构起自己基于B/S三层模式的动
2、态网站,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,所以有必要了解SQL注入攻击的原理及其实现过程,尽可能多的采取防范措施,以保证网站的安全性。二、SQL注入攻击技术简介SQL注入攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令,以获取用户密码等敏
3、感信息,进而获取主机控制权限的攻击方法。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。SQL注入的类型从最初的"1=1”型到现在的SQLServer存储过程和扩展存储过程注入,SQL注入迄今为止已经被发现数十种。总的来说,它的分类可以从SQL语言的自身进行,它可以分为授权旁路型、SELECT型、INSERT型、其它型(如SQLServer存储过程)。如前所述,SQL语言中的数据查询部分(SELECT语句)是SQL语句中最灵活、
4、功能最强的部分,因此,该部分的SQL注入也种类繁多,主要有基本SE-LECT型、基本集合(UNION)型、语法错误型列举、匹配(HKE)型、一一结尾型等。三、基于ASRNET网站的SQL注入防范措施(一)校验用户输入从而防止注入式攻击1.使用RegularExpressionValidator控件在ASRNEu-larExpressionValidator控件的ValidationExpression属性即可。2•使用强数据类型使用强数据类型,将数字类型的输入指定为Integer或者Double的类型;将字符输
5、入指定为String数据类型;将日期时间输入指定为DateTime类型。(二)过滤SQL语句,防止注入通过过滤SQL语句,禁止在SQL语句出现"exec,master,delete,truncate,declare,create,Xp"这些字符。(三)将用户登录名称、密码等数据加密保存加密用户输入的数据,如采用MD5加密,然后再将它与数据库中保存的数据比较,这相当于对用户输入的数据进行了“消毒”处理,用户输入的数据不再对数据库有任何特殊的意义,从而也就防止了攻击者注入SQL命令。System.Web.Secur
6、ity.Form-sAuthentication类有一个Has-hPasswordForStoringInConfigHie,非常适合于对输入数据进行“消毒”处理。(四)SQL语句使用类型安全的参数方式SQLServer的参数(Parameters)集合提供类型检测和长度检测,使用参数集合,输入的内容将被视为文本值而不是可执行代码,数据库不会执行包含在其中的代码。使用参数集方式可以严格限定输入的类型和长度,如果输入超出范围将会触发异常。SQL参数的传递方式将防止攻击者利用单引号和连字符实施攻击。此外,它还使得数
7、据库权限可以限制到只允许特定的存储过程执行,所有的用户输入必须遵从被调用的存储过程的安全上下文,这样就很难再发生注入式攻击了。四、总结由于SQL注入攻击针对的是应用开发过程中的编程不严密,只要对SQL语言足够熟悉,时刻注意SQL注入的危险,就可以采取相应的防护措施,不断完善编程,提高网络应用程序的安全性。
此文档下载收益归作者所有