虽然我在现实中还没有碰到过自己开发的东西出现安全漏洞,但是作为一名开发者我深知web安全的重要性。今天在这里就一块分享一下自己的一点体会。这里会提到几个方面,但是是以SQL Injection为主。
问题一:防止SQL注入 (也是主要的安全漏洞之一)
1.1如何防止SQL注入:
其实早就想谈谈这方面的问题了,作为一个开发者如果不注意这方面的问题我想不能算一个合格的开发者。
今天看到一个同学在写SQL 注入的新技术,让我又重新想起了写这方面文章事情。
引起SQL注入的原因比较多,但是主要有以下三点:
1>连接字符串组合SQL指令。
2>开发的数据库权限过大。
3>未对输入进行检测和限制。
1.2SQL注入的方式:
1>利用“;”添加多条命令
2>利用参数的单引号特性
3>利用注释--或/**/
1.3看一个sql注入的Sample
假设我们有一个登录页面,登录的时候输入用户名(tbUserName)和密码:(tbUserPwd),如果我们在验证的时候用:select * from [User]where UserName='"+tbUserName.Text+"' and UserPwd='"+tbUserPwd.Text+"'的方式进行验证,也就是我们
通过连接字符串构造sql语句,然后我们通过判读得到的记录,例如得到的是一个DataTable,我们就可以通过
DataTable.Row.Count>0然后登录成功。