NET网站防SQL注入方法探究

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

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

确认删除?