什么是SQL 注入

来源:互联网 发布:新浪微博数据统计 编辑:程序博客网 时间:2024/05/22 15:46

        今天在本网站上看到了《asp.net夜话之三:表单和控件》,让我知道了什么是SQL 注入.

        get方式提交的表单在地址栏会显示参数名和参数值,而post方式不会。用post提交参数相对来说更隐蔽一些,也相对安全一些。假如我们这个页面用于用户登录并且存放用户信息的表为“users”,我们的sql语句可能会这么写:string sql=” select * from users where username='”+username+”’ and password='”+password+”’”; 然后我们的username和password变量从表单提交的数据获取,正常情况下用户填写是没有问题,就上面的例子来说用户填写的用户名和密码分别是“zhoufoxcn”和“123456”,那么我们最后得到的SQL语句是:sql=”select * from users where username=’zhoufoxcn’ and password=’123456’”,这样是没有问题的。如果用get方式提交,用户可以对上面的参数进行一些改动,比如在地址栏直接输入:http://localhost/GetUserInfo.aspx?username=zhoufoxcn&pwd=123'; delete * from users',那么我们得到的SQL就是:string sql=” select * from users where username='zhoufoxcn' and password='123'; delete * from users'”,执行上面的SQL语句就能把Users这个表里的所有数据删除掉!这个一个触目惊心的危险!这个就叫SQL注

原创粉丝点击