首页技术文章正文

SQL注入,常见的安全漏洞【软件测试培训】

更新时间:2022-08-16 来源:黑马程序员 浏览量:

  所谓SQL注入就是把SQL命令人为地输入URL、表格域或者其他动态生成的SQL查询语句的输入参数中,最终达到欺骗服务器执行恶意的SQL命令。

  假设某个网站通过网页获取用户输入的数据,并将其插入数据库。正常情况下的URL地址如下。

   http://localhost/id=222

  此时,用户输入的id数据222会被插入数据库执行下列SQL语句。

   select * from users where id = 222

  但是,如果我们不对用户输入数据进行过滤处理,那么可能发生SQL注入。例如,用户可能输入下列URL。

    1=1

  此时用户输入的数据插入到数据库后执行的SQL语句如下。

   select * from users where id = '' or '1'='1'

  通过比较两个SQL语句,发现这两条SQL查询语句意义完全不同,正常情况下,SQL语句可以查询出指定id的用户信息,但是SQL注入后查询的结果是所有用户信息。

  SQL注入是风险非常高的安全漏洞,我们可以在应用程序中对用户输入的数据进行合法性检测,包括用户输入数据的类型和长度,同时,对SQL语句中的特殊字符(如单引号、双引号、分号等)进行过滤处理。

  值得一提的是,由于SQL注入攻击的Web应用程序处于应用层,因此大多防火墙不会进行拦截。除了完善应用代码外,还可以在数据库服务器端进行防御,对数据库服务器进行权限设置,降低了Web程序连接数据库的权限,撤销不必要的公共许可,使用强大的加密技术保护敏感数据,并对被读取走的敏感数据进行审查跟踪等。

分享到:
在线咨询 我要报名
和我们在线交谈!