010-85750228 2501113779 160055292

玖玖模板站

HTTP://WWW.T99.CC

网站防止SQL注入技术

1、为什么必需防止SQL注入?


 相称大一部门程序员在编写代码的时候,没有对用户输入数据的正当性进行判定,使应用程序存在安全隐患。新手最轻易忽略的题目就是SQL注入漏洞的题目。用NBSI 2.0对网上的网站扫描,就能发现部门网站存在SQL注入漏洞,用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据。


2、怎样防止SQL注入?


好比URL、表单等提交信息时,通过一段防止SQL注入的过滤代码即可防止犯错信息暴露,或者通过转向,当系统犯错时转到一个提示犯错的页面等。同时服务器权限设置是一个非常重要的方面,因为涉及到服务器的配置比较多,本文不先容。
对于文本型输入,假如要进行检查,就得根据字段本身的性质进行。例如假如是春秋,就得限定必需是数字,大小必需限定在一个范围之间,好比说18-120之间。对于用户名,应该建立一个集合,这个集合里存放有被答应的字符,或被禁止的字符。
这里特别需要说明的一点是关于检查程序的题目。目前,程序对输入数据的检查是在前台通过客户端脚本完成的,这样攻击者很轻易就可以绕过检查程序。建议采用前后台结合的方法,既可以保证效率,有可以进步安全性。
 


3、怎样测试程序已防止了SQL注入?


如http://www.XXX.cn/index.asp?ID=29,此网站用ID来传送数值,假如在ID数值后面加一个SQL敏感符号,英文单引号“’”,打开此链接,假如泛起的是浏览器的默认犯错提示,则需要设置浏览器,使其错误提示泛起,方法为打开浏览器:选项—Internet选项—高级,在设置里找到显示友好的HTTP错误信息勾掉,确认后再刷新,假如此时泛起了数据库犯错的提示,如:Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21',那么说明本程序并没有防止SQL注入,反之假如只泛起了如:“提醒您, URL有误,请与治理员联系”之类的提示,说明SQL已经防止了注入。检测表单方法如:如提交脚本,在输入框中输入特殊字符如:script_等,在此不再叙述,测试者可以在网上找到良多这样的方法。


2 次浏览
andy, | 关键词:

评论