千家信息网

SQL中 Injection的作用是什么

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇文章给大家分享的是有关SQL中 Injection的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。SQL Injectio
千家信息网最后更新 2026年10月31日SQL中 Injection的作用是什么

本篇文章给大家分享的是有关SQL中 Injection的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

SQL Injection,SQL 注入,其实就是利用代码漏洞改变 SQL 的语意,从而形成恶意 SQL 语句

$username = $_POST['username'];$password = $_POST['password'];$query = "select * from users where username = '{$username}' and password = '{$password}'";// 判断是否登录成功if (DB::select($query)) {    return true;}return false;

咋一看这段伪代码没啥问题,就是判断账号密码是否正确,正确就返回 true,允许登录。但是如果传入的 username 为 123' or 1=1;#\,那么 SQL 语句就变为了

select * from users where username = '123' or 1=1;# and password = '{$password}'";

这条恶意的 SQL 语句无论何时都会返回 true,因为 1=1

通过 ORM 注入

我们前面讲过 SQL Injection 就是利用代码漏洞改变 SQL 的语意,意味着 ORM 也是一个潜在的注入点。以 tp3.2 为例,有下面这段代码

$result = D('User')->where([    'username' => $_POST['username'],    'password' => $_POST['password'],]);if ($result) {    echo '登录成功';} else {    echo '登录失败';}

这段代码咋看起来没啥问题,但是如果 username 传入的是 username[0]=neq&username[1]=1111,这样就是的查询语句变为

$result = D('User')->where([    'username' => ['neq', 111],    'password' => $_POST['password'],]);

那么 $result 的结果将永远为 true

防范方法

  • 对传入的参数进行数据类型判断和数据类型转换

  • 对引号进行转义,PHP 可以使用 addslashes,mysql_real_escape_string 等函数

  • 预处理语句,最有效防范 SQL Injection

  • 代码审计

预处理语句是如何防止 SQL Injection 的

预处理语句是由数据库实现的,比如 MySQL 就有实现预处理语句。首先讲下预处理的基本流程

  • MySQL 接收到 预处理 SQL Template,立刻着手进行解析(词法和语法)

  • 客户端发送数据,去替换 SQL Template 中的占位符(?)

  • MySQL 执行语句,返回结果

  • 删除预处理语句(可选)

那么预处理语句是如何防范 SQL 注入的呢?首先所谓的 SQL Injection 就是强行去改变 SQL 语意。而在步骤一中已经处理完成语句,将 SQL 的语意固定下来,步骤二的替换占位符并不会改变 SQL 语意。下面是 PHP PDO 的例子

$stmt = $pdo->prepare("select * from users where username = '?' and password = '?'");$stmt->execute("123' or 1=1;#", 'test');

以上就是SQL中 Injection的作用是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

语句 预处理 代码 就是 语意 数据 登录 作用 成功 恶意 更多 步骤 漏洞 知识 篇文章 类型 结果 问题 实用 有效 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技互联网 山东特亿宝互联网科技有限公司 互联网金融 科技 金融科技与互联网金融 贷财互联网科技 互联网科技大会 撒么互联网科技公司 汉立互联网科技有限公司联系电话 互联网科技公司的市场部门 老年人脱离互联网科技的作文 卫星互联网科技股票 团飞科技与伯堂互联网服务平台 顶级互联网科技成果有哪些 注册互联网科技公司经营范围大全 朱啸虎曾投资哪些互联网科技企业 南通创西澳互联网科技有限公司 本届互联网大会上的黑科技 盐城市攀科互联网科技有限公司 互联网科技创新创业项目 广东猫王互联网科技有限公司电话 鸠鸠互联网科技 平安科技 互联网 互联网科技媒体 奔汉互联网科技 互联网科技股午盘股票涨跌 互联网科技公司的市场部门 浙江互联网科技研学营 互联网科技接地气 互联网科技和医药行业 瑞安市蟠桃会互联网科技有限公司
0