安全测试|常见SQL注入攻击方式、实例及预防
SQL注入是一种将SQL代码添加到输入参数中传递到服务器解析并执行的一种攻击手法。SQL注入攻击是输入参数未经过滤然后直接拼接到SQL语句当中解析执行达到预想之外的一种行为称之为SQL注入攻击。SQL注入是怎么产生的WEB开发人员无法保证所有的输入都已经过滤攻击者利用发送给SQL服务器的输入参数构造可执行的SQL代码可加入到get请求、post请求、http头信息、cookie中数据库未做相应的安全配置SQL注入攻击实例以php编程语言、mysql数据库为例介绍一下SQL注入攻击的构造技巧、构造方法1、数字注入在浏览器地址栏输入learn.me/sql/article.php?id1这是一个get型接口发送这个请求相当于调用一个查询语句s q l S E L E C T ∗ F R O M a r t i c l e W H E R E i d , sql SELECT * FROM article WHERE id , sqlSELECT∗FROMarticleWHEREid,id正常情况下应该返回一个id1的文章信息。那么如果在浏览器地址栏输入learn.me/sql/article.php?id-1 OR 1 1这就是一个SQL注入攻击了可能会返回所有文章的相关信息。为什么会这样呢这是因为id -1永远是false11永远是true所有整个where语句永远是ture所以where条件相当于没有加where条件那么查询的结果相当于整张表的内容。2、字符串注入有这样一个用户登录场景登录界面包括用户名和密码输入框以及提交按钮。输入用户名和密码提交。这是一个post请求登录时调用接口learn.me/sql/login.html首先连接数据库然后后台对post请求参数中携带的用户名、密码进行参数校验即sql的查询过程。假设正确的用户名和密码为user和pwd123输入正确的用户名和密码、提交相当于调用了以下的SQL语句SELECT * FROM user WHERE username ‘user’ ADN password ‘pwd123’由于用户名和密码都是字符串SQL注入方法即把参数携带的数据变成mysql中注释的字符串。mysql中有2种注释的方法1‘#’#后所有的字符串都会被当成注释来处理用户名输入user’#单引号闭合user左边的单引号密码随意输入如111然后点击提交按钮。等价于SQL语句SELECT * FROM user WHERE username ‘user’#ADN password ‘111’#后面都被注释掉了相当于SELECT * FROM user WHERE username ‘user’2‘-- ’ –后面有个空格’-- 后面的字符串都会被当成注释来处理用户名输入user’-- 注意–后面有个空格单引号闭合user左边的单引号密码随意输入如111然后点击提交按钮。等价于SQL语句SELECT * FROM user WHERE username ‘user’-- AND password ‘111’SELECT * FROM user WHERE username ‘user’-- AND password ‘1111’-- 后面都被注释掉了相当于SELECT * FROM user WHERE username ‘user’因此以上两种情况可能输入一个错误的密码或者不输入密码就可登录用户名为’user’的账号这是十分危险的事情。如何预防SQL注入这是开发人员应该思考的问题作为测试人员了解如何预防SQL注入可以在发现注入攻击bug时对bug产生原因进行定位。1严格检查输入变量的类型和格式对于整数参数加判断条件不能为空、参数类型必须为数字对于字符串参数可以使用正则表达式进行过滤如必须为[0-9a-zA-Z]范围内的字符串。2过滤和转义特殊字符在username这个变量前进行转义对’、、\等特殊字符进行转义如php中的addslashes()函数对username参数进行转义。3利用mysql的预编译机制把sql语句的模板变量采用占位符进行占位发送给mysql服务器mysql服务器对sql语句的模板进行编译编译之后根据语句的优化分析对相应的索引进行优化在最终绑定参数时把相应的参数传送给mysql服务器直接进行执行节省了sql查询时间以及mysql服务器的资源达到一次编译、多次执行的目的除此之外还可以防止SQL注入。具体是怎样防止SQL注入的呢实际上当将绑定的参数传到mysql服务器mysql服务器对参数进行编译即填充到相应的占位符的过程中做了转义操作。

相关新闻

AI零代码平台开发实战:从原理到应用场景解析

AI零代码平台开发实战:从原理到应用场景解析

1. 鱼跃AI零代码平台:重新定义应用开发边界 去年帮一家连锁餐饮品牌做数字化转型时,他们的店长拿着Excel表格追着我问:"能不能做个自动计算翻台率的小程序?最好明天就能用。"当时我们团队用传统开发方式至少需要两周&am…

2026/10/13 23:27:12 阅读更多 →
XUnity Auto Translator:3步实现Unity游戏多语言实时翻译的完整指南

XUnity Auto Translator:3步实现Unity游戏多语言实时翻译的完整指南

XUnity Auto Translator:3步实现Unity游戏多语言实时翻译的完整指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 对于使用Unity引擎开发的游戏玩家来说,语言障碍往往是体验全球…

2026/10/14 18:03:11 阅读更多 →
宠物美容师三条长期发展赛道:门店晋升、自主创业、行业讲师全解析

宠物美容师三条长期发展赛道:门店晋升、自主创业、行业讲师全解析

完成宠物美容师培训、顺利上岗只是起点,行业存在三条清晰、可长期深耕的职业发展路线,不同赛道对技能、资源、性格要求不同,结合 2026 行业市场现状拆解每条赛道成长路径与前置准备。 第一条赛道:门店技术管理晋升路线&#xff0c…

2026/10/14 18:03:12 阅读更多 →

最新新闻

ZeroTermux 内置命令手册精讲:zcat 命令——不真正解压也能查看 gzip 压缩包内容

ZeroTermux 内置命令手册精讲:zcat 命令——不真正解压也能查看 gzip 压缩包内容

移动开发开发工具 【免费下载链接】ZeroTermux 项目地址: https://gitcode.com/GitHub_Trending/ze/ZeroTermux 点击查看 免费下载 本篇围绕 ZeroTermux 内置 Linux 命令手册(app/src/main/assets/cmd/zcat.md)展开,系统讲解 zca…

2026/10/15 18:12:24 阅读更多 →
基于CAN总线的温度采集与控制系统设计:抗干扰与主动报警实践

基于CAN总线的温度采集与控制系统设计:抗干扰与主动报警实践

简介:基于CAN总线的温度采集与控制系统完整工程包,面向嵌入式、STM32及CAN总线通信学习者,解决环境温度实时采集与上位机监控的实践需求。该工程以STM32为控制核心,结合DS18B20温度传感器与CAN收发节点,并配套上位机串…

2026/10/15 18:12:24 阅读更多 →
DeepSpec 实战指南:投机解码草稿模型的数据准备、训练与评估全流程

DeepSpec 实战指南:投机解码草稿模型的数据准备、训练与评估全流程

人工智能大模型预训练模型优化模型评测 【免费下载链接】DeepSpec DeepSpec: a full-stack codebase for training and evaluating speculative decoding algorithms 项目地址: https://gitcode.com/gh_mirrors/de/DeepSpec 点击查看 免费下载 DeepSpec 是一个面向…

2026/10/15 18:12:24 阅读更多 →
PCRE 8.45 正则库实战:编译、API 调用与性能优化指南

PCRE 8.45 正则库实战:编译、API 调用与性能优化指南

简介:pcre-8.45.tar.gz 是 PCRE(Perl Compatible Regular Expressions)库 8.45 版的官方源代码压缩包,面向需要在 CentOS 等 Linux 服务器环境中自行编译部署正则表达式引擎的开发者与运维人员。PCRE 以 C 语言编写,支…

2026/10/15 18:12:24 阅读更多 →
南大通用GBase 8a数据库压缩算法新老版本对照

南大通用GBase 8a数据库压缩算法新老版本对照

南大通用GBase 8a数据库(gbase database)旧算法配置参数中,可以控制使用算法的种类,而具体到某一算法,但只能采用默认的压缩级别,缺乏灵活性,也限制了算法在不同场景下发挥出最大效能。同时现在…

2026/10/15 18:12:24 阅读更多 →
IPMItool源码解析:从接口抽象到BMC诊断命令扩展

IPMItool源码解析:从接口抽象到BMC诊断命令扩展

简介:IPMItool 源码包是一份面向服务器运维工程师、系统管理员及BMC嵌入式开发者的开源工具源码,用于通过IPMI协议对BMC进行远程监控、传感器数据读取与电源管理。资源共171个文件,压缩包仅752KB,以50个头文件和49个C源文件为核心…

2026/10/15 18:11:23 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →