NET网站防SQL注入方法研究

时间:2022-09-18 02:01:58

NET网站防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.使用Regular Expression Validator控件

在ASRNET中,Regular Expression Validator控件是一个强大的工具。它可以检验文本是否和定义的正则表达式中的模式匹配。只需要简单地配置Validation Ex pression属性的-正则表达式即可。正则表达式也是一个强大的工具,它允许指定复杂的规则,该规则指定字符和字符顺序(位置和出现次数)。为防止用户输入一些危险的字符,可以利用该正则表达式“^[0-9A-Za-z]+$”,该表达式表示的意思是用户只可以输入字母和数字。要运用该正则表达式,只需在将其赋值给Regu-lar Expression Validator控件的Validation Expression属性即可。

2.使用强数据类型

使用强数据类型,将数字类型的输入指定为Integer或者Double的类型;将字符输入指定为String数据类型;将日期时间输入指定为DateTime类型。

(二)过滤SQL语句,防止注入

通过过滤SQL语句,禁止在SQL语句出现“exec,master,delete,truncate,declare,create,Xp”这些字符。

(三)将用户登录名称、密码等数据加密保存

加密用户输入的数据,如采用MD5加密,然后再将它与数据库中保存的数据比较,这相当于对用户输入的数据进行了“消毒”处理,用户输入的数据不再对数据库有任何特殊的意义,从而也就防止了攻击者注入SQL命令。System.Web.Security.Form-sAuthentication 类有一个Has-hPassword For Storing In Config File,非常适合于对输入数据进行“消毒”处理。

(四)SQL语句使用类型安全的参数方式

SQL Server的参数(Parameters)集合提供类型检测和长度检测,使用参数集合,输入的内容将被视为文本值而不是可执行代码,数据库不会执行包含在其中的代码。使用参数集方式可以严格限定输入的类型和长度,如果输入超出范围将会触发异常。

SQL参数的传递方式将防止攻击者利用单引号和连字符实施攻击。此外,它还使得数据库权限可以限制到只允许特定的存储过程执行,所有的用户输入必须遵从被调用的存储过程的安全上下文,这样就很难再发生注入式攻击了。

四、总结

由于SQL注入攻击针对的是应用开发过程中的编程不严密,只要对SQL语言足够熟悉,时刻注意SQL注入的危险,就可以采取相应的防护措施,不断完善编程,提高网络应用程序的安全性。

上一篇:充分发挥主题图的作用 下一篇:中学英语多媒体教学与传统课堂教学浅析