《EasyASP v2.2》新功能之在Easp中防止sql注入的(一)
EasyASP终于到v2.2了,目前还在完善手册,群里有很多人问如何使用的问题 ,所以打算在写手册的同时写一些新功能的介绍,方便使用Easp 的童鞋们快速 进入状态。说实话,看到这么多人还在写ASP、还在支持Easp,觉得蛮难得的, 所以也一直没有丢下Easp的开发,还是希望Easp能给最后的ASPer们一点微薄的 帮助。
EasyASP v2.2的改动比较大,放弃了不少原来我觉得不好用的方法,当然, 更多的是加入了不少我觉得会用得很哈屁的新功能。这是这个系列的第一篇文章 ,准备讲讲EasyASP是如何防范SQL注入的。
说起防SQL注入,大家肯定又是各抒己见,这篇文章也并不打算作深入的探讨 ,我会从这个角度来讲EasyASP v2.2是如何防范SQL注入的。
1.找到注入点
首先,还是要看看在ASP可以从哪些方面得到注入机会(以下均基于VBScript )。要使用ASP获取用户可以输入的数据,无非是这三个方面:
Request.QueryString
Request.Form
Request.Cookies
如果你的程序里没有对通过Request取得的数据进行处理而直接用在拼接的 SQL语句中,则基本上无法避免SQL注入的产生。所以,必须对参与SQL拼接的值 进行预先处理,但是又该如何处理呢?
2.处理注入字符
参照我比较赞同的上面那篇文章最后给出的结论,可以简单的这样理解如何 处理这些可能被注入的数据:
(1) 对于字符串型的数据,处理其中的单引号,将一个单引号换为两个单引 号;
(2) 对于数值型的数据,验证它是否是数字;
(3) 对于日期型的数据,验证它是否是日期型。
所以,ASP的防注入应该是在拼接SQL前对通过第1点取得的数据按第2点的方 法进行交叉处理,并返回可以被正确执行在SQL语句中的字符串。