教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

什么是SQL 注入?什么原理?如何防范?

更新时间:2021年04月12日14时54分 来源:传智教育 浏览次数:

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

1618210051221_SQL.png


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

http://localhost/id=222

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

select * from users where id =222

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

http:/ /localhost/id=''or 1=1

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

select * from users where id =222

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

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

值得一提的是,由于SQL注入攻击的Web应用程序处于应用层,因此大多防火墙不会讲行拦截。

除了完善应用代码外,还可以在数据库服务器端进行防御,对数据库服务器进行权限设置,降低Web程序连接数据库的权限,撤销不必要的公共许可,使用强大的加密技术保护敏感数据,并对被读取走的敏感数据进行审查跟踪等。


原文地址:SQL 注入是什么意思?http://test.itheima.com/areanew/schoolzixun/test/20210412/144808.html



猜你喜欢:

常见的安全测试工具有哪些?

10款移动app安全测试工具推荐

6款自动化应用安全测试工具推荐

传智教育软件测试工程师培训课程

0 分享到:
和我们在线交谈!