千家信息网

如何进行SQL注入漏洞浅析及防御

发表于:2024-11-21 作者:千家信息网编辑
千家信息网最后更新 2024年11月21日,本篇文章为大家展示了如何进行SQL注入漏洞浅析及防御,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、什么是SQL注入漏洞将用于输入的查询参数,直接拼接在 S
千家信息网最后更新 2024年11月21日如何进行SQL注入漏洞浅析及防御

本篇文章为大家展示了如何进行SQL注入漏洞浅析及防御,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

一、什么是SQL注入漏洞

将用于输入的查询参数,直接拼接在 SQL 语句中,导致了SQL 注入漏洞。SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。

根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。基于此,SQL注入的产生原因通常表现在以下几方面:

①不当的类型处理;

②不安全的数据库配置;

③不合理的查询集处理;

④不当的错误处理;

⑤转义字符处理不合适;

⑥多个提交处理不当。

二、SQL注入漏洞的危害

● 数据库信息泄漏:数据库中存放的用户的隐私信息的泄露

● 网页篡改:通过操作数据库对特定网页进行篡改

●网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击

●数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被窜改

●服务器被远程控制,被安装后门。经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统

●破坏硬盘数据,瘫痪全系统

一些类型的数据库系统能够让SQL指令操作文件系统,这使得SQL注入的危害被进一步放大。

3、经典SQL注入源码浅析

孙子兵法说"知己知彼,百战不殆"。只有了解了对手才能够更好的击败他!

采用靶场DVWA靶场low级别的SQL注入源码进行分析DVWA源码下载地址:http://www.dvwa.co.uk打开:DVWA\vulnerabilities\sqli\source\low。如下面的php代码所示。第一个红框使用的是$_REQUEST的传输参数。$_REQUEST - HTTP Request变量默认情况下包含了$_GET,$_POST 和 $_COOKIE的数组。也就是说,再不关心是get过来的还是post,总之要取得某一个键的值,就用$_REQUEST就可以了。主要的问题就是出现在第二个红色框,$query = "SELECT first_name, last_name FROM users WHERE user_id ='$id';"; 这段代码采用的是$_GET传输的方式,直接将参数$name拼接到了数据库查询语句中了,没有做任何处理。由此根据代码也可以断定,这将可能导致一个字符型的SQL注入,也就是GET类型的注入。

举两个简单的例子:

1、$id为用户输入需要查询的条件,而SQL语法是引号双双闭合的,如果输入一个单引号,就会出现语法报错

2、如果输入1 or 1=1,系统判定为或逻辑,只要有一个条件为真就会输出查询结果,显然1=1是为真的,系统就会查询出对应信息

4、如何防御

1、PreparedStatement(简单而有效的方法)

采用预编译语句集,它内置了处理SQL注入的能力,只要使用它的setXXX方法传值即可。

使用好处:

(1).代码的可读性和可维护性.

(2).PreparedStatement尽最大可能提高性能.

(3).最重要的一点是极大地提高了安全性.

原理:

SQL注入只对SQL语句的准备(编译)过程有破坏作用

而PreparedStatement已经准备好了,执行阶段只是把输入串作为数据处理,

而不再对SQL语句进行解析,准备,因此也就避免了SQL注入问题.

2、字符串过滤

比较通用的一个办法:

(||之间的参数可以根据自己程序的需要添加)

上述内容就是如何进行SQL注入漏洞浅析及防御,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

数据 数据库 系统 输入 处理 查询 漏洞 语句 代码 参数 程序 攻击 防御 不当 安全 信息 字符 服务器 源码 用户 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 无线网络访问服务器异常 合肥丹明网络技术有限公司 服务器的管理员怎么样 共享娃娃机的软件开发商 国家兽药基础数据库网址下载 数据库调度的前驱图 旅游景区的软件开发商 怎么开服务器创业之星 数据库ssms工具什么意思 软件开发抖音宣传 北仑安卓软件开发教程 山东网络技术开发是真的吗 周鸿祎谈网络安全问题 安卓是用什么数据库 上海常见软件开发制造价格 物资信息数据库有什么内容 软件开发总结与反思 网络安全手抄报字少 一等奖 实现数据库安全的策略 济南纽航互联网科技有限公司 网络安全宣传的演讲稿 一米oa 数据库 数据库两个字段相减再查询 视频一对一聊天软件开发定制 网络安全技术支持面试笔试总结 嘉兴软件开发有限公司怎么样 游戏手机平台交易软件开发 深圳亿客传媒网络技术有限公司 提示更新换了服务器怎么办 数据库备份和导出命令
0