深圳蓝韵网络有限公司

核心提示在Web安全领域中,SQL注入可以说是无人不知,无人不晓。哪怕是没接触过Web安全的站长,也多多少少听过这词,它是目前被利用得最多的漏洞之一。什么是SQL注入?SQL是操作数据库数据的结构化查询语言,网页的应用数据和后台数据库中的数据进行交

在网络安全领域,SQL注入可以说是众所周知的。即使是从未接触过web安全的站长,也或多或少听过这个词,是目前使用最多的漏洞之一。

什么是SQL注入?

SQL是一种操作数据库数据的结构化查询语言。当网页的应用数据与后台数据库中的数据进行交互时,会用到SQL。SQL注入是将网页的原始URL、表单域或数据包的参数修改拼接成SQL语句,传递给Web服务器,再传递给数据库服务器执行数据库命令。

如果Web应用程序的开发人员将用户输入的数据或cookie不经过滤或验证直接传输到数据库,则可能执行拼接的SQL,获取数据库的信息和数据库的权限,发生SQL注入攻击。

SQL的方法原理

SQL注入攻击的核心是让Web服务器执行攻击者所期望的SQL语句,以获取数据库中感兴趣的数据或对数据库进行读取、修改、删除、插入等操作,从而达到其恶意目的。

那么如何让Web服务器执行攻击者的SQL语句呢?SQL注入的常规做法是将SQL语句放入表单或请求参数中,然后提交给后端服务器。如果后端服务器不检查输入安全,直接取出变量进行数据库查询很容易被抓到。例如:

对于根据用户ID获取用户信息的接口,后端的SQL语句一般是这样的:

其中$id是前端提交的用户id,如果前端请求是这样的:

其中,请求参数id为1或者转义后1=1。如果后端不经过安全过滤直接提交数据库查询,SQL语句将变成:

从而将用户表中的数据全部找出来,达到黑客泄露数据的目的。

以上只是一个非常简单的例子,一次真实的SQL注入袭击。它的参数构造和SQL语句比这个复杂很多,但原理是一样的。

如何预防SQL注入

如果您使用的是第三方CMS程序,请将该程序升级到最新版本。

过滤用户输入的数据。默认情况下,所有用户的输入都应该被认为是不安全的。

在网页代码中,要对用户输入的数据进行严格过滤。

部署Web应用程序防火墙。

监控数据库操作。

 
友情链接
鄂ICP备19019357号-22