浅谈防SQL注入

Posted 卓网信息

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈防SQL注入相关的知识,希望对你有一定的参考价值。

      

什么是SQL?它的原理是什么?又是如何防护的?今天,小编就将针对以上问题与V粉们分享关于一些SQL的知识。 


SQL注入一说,起源于1998年国外安全研究人员(rain forest puppy)在一本由黑客创办的一本杂志phrack上发表,题目为《NT web Technology vulnerabilities(NT web技术漏洞)》。至此,很多研究人员开始研究就细化SQL注入进行攻击的技术。时至今日,仍然还有很多开发人员和安全人员对SQL注入不甚了解。同时,在OWASP TOP10中, SQL注入仍是影响企业运营且较具破坏性的漏洞之一,如2016年的世纪佳缘数据库泄露。不仅如此,如新浪及人人网等媒体站也存在着SQL注入漏洞。那么什么是SQL注入呢?

一、SQL注入的原理

定义:通过把SQL命令用户写入提交的数据中,改变代码原有SQL语句的语义,从而达到控制服务器执行恶意的SQL命令,导致可写入任意SQL语句并执行

例如:应用程序在下面存在l漏洞的SQL语句的构造使用不可信数据:

string query = “ select*from aa where aid =””+request.getParameter(“id”)+””

攻击者在浏览器中将id参数的值改为

100or1’=’1

如:

http://www.a.com/data/User?id=100’or ‘1’=’1

这样查询的语句的意义变成了从aa表中返回所有的记录。

(1) 语句变化:

select*from aa where aid =’100’;
select*from aa where aid =’100or1’=’1’;

(2) 实际案例:

二、SQL注入防护

1. 永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度,对单引号与及特殊字符进行转换等。

2. 永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。

3. 永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。

4. 不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。

5. 应用的异常信息应该给出尽可能少的提示(关闭debug调试模式),最好使用自定义的错误信息对原始错误信息进行包装。

6. 进行站库分离操作,防止网站SQL注入获取到数据。

7. 物理服务器:部署硬件web防火墙(WAF),可有效防止SQL注入等攻击。

8. 云服务器:使用软件防火墙,使用安全可信任的云服务商(自带有云WAF),如XYcloud,阿里云等。


 

点击阅读更多往期精彩





卓网信息

以上是关于浅谈防SQL注入的主要内容,如果未能解决你的问题,请参考以下文章

浅谈Web安全之SQL注入攻击与防护

浅谈C#.NET防止SQL注入式攻击

sql注入浅谈sql注入中的Post注入

浅谈SQL注入

浅谈sql注入问题

web安全 浅谈sql注入