什么是SQL 注入?举个例子?

帅地注:这个一般会结合项目来问你,一般不会突然单独问这个,问的时候,最好可以举例子哈,自己在项目中测试过是最好的说服力,下面会举一个简单的案例。

SQL 注入就是通过把 SQL 命令插入到 We b表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令的。

1). SQL注入攻击的总体思路

  (1). 寻找到SQL注入的位置
  (2). 判断服务器类型和后台数据库类型
  (3). 针对不通的服务器和数据库特点进行SQL注入攻击

2). SQL注入攻击实例

比如,在一个登录界面,要求输入用户名和密码,但是我们可以通过**SQL注入来实现免帐号登录,比如我们可以这样输入:

用户名: ‘or 1 = 1 --
密 码:

用户一旦点击登录,如若没有做特殊处理,那么这个非法用户就很得意的登陆进去了。

这是为什么呢?

下面我们分析一下:从理论上说,后台认证程序中会通过如下的SQL语句来判断用户的账户密码是否正确:

String sql = “select * from user_table where username=’ “+userName+” ’ and password=’ “+password+” ‘”;

因此,当输入了上面的用户名和密码,上面的SQL语句变成:

SELECT * FROM user_table WHERE username=’’or 1 = 1 –- and password=’’

分析上述SQL语句我们知道,username='' or 1=1 这个语句一定会成功;然后后面加两个 -

发表评论

后才能评论