sql注入 mysql 执行命令 sql注入以及解决的办法

news2024/12/23 22:07:50

我们以前很可能听过一个词语叫做SQL注入攻击,其是威胁我们系统安全的最危险的因素之一,那么到底什么是SQL注入攻击呢?这里我会用一个最经典最简单的例子来跟大家解释一下:
众所周知,我们的sql语句都是有逻辑的,例如下面这句:


这句超级简单吧,我们都知道,这句最常用的是在登陆的时候,来查询用户输入的账号和密码匹配不匹配,来确定用户是否可以登陆的,大体上一看好像没啥问题,但是呢,假如我是一名黑客,我可以用一种巧妙地方式来登陆你这个系统,我账号随意输入一个,密码我输入一个 1 ‘or’ 1’='1 什么意思呢?请看下面这个语句:


这一句是啥意思呢?
我的账号输入的是asasas,乱输的,但我的密码输入的是1 ‘or’ 1’=‘1 ,最后在数据库里查询的上面这句,其实是一句恒等式,为什么这么说呢?where条件后面有一个and 还有一个or,我们都知道and是且,or是或,所以整个语句的条件其实是名字为asasas且密码为1或者’1’等于’1’,这里就很好笑了,字符串1永远等于字符串1啊!所以后面的where条件是一个恒等式,表所有的行都符合字符串1等于字符串1这个条件,又是或的关系,所以所有的行全部匹配,全部被搜索出来,这样再用行数来判断用户是否能登陆已经根本不行了,因为查出来的是所有行。就类似于下面的句子:


注意第二句,改写成第三句后大家应该能看懂了,第三句肯定会查询出来所有的行。
既然现在大家基本了解了SQL注入攻击,那我们要怎么办才能防止这种攻击发生呢?
第一种方式大家都很容易想到,那就是特殊字符匹配,首先大多数系统不会允许用户输入特殊字符 ',- - 之类的,这可以解决一部分SQL注入问题,但是目前最有效最简单的方法是参数化查询语句来防止SQL注入,大家可能看得一脸懵逼,什么是参数化查询语句?没关系,请看下面的代码:


这就是一段经典的参数化sql语句执行,可能大家觉得这种方式和我们去拼接字符串执行看起来没什么差别,实际上,这两种方式差别非常大,其中最重要的差别就在于这种方式会将执行计划重用,大家可能又要问什么是执行计划重用,执行计划重用是数据库的一种机制,其预编译sql语句,就类似于一个模板,以后执行的话就改改传入参数,就不需要再次编译了,举个简单的例子,刚才我们的:


第一句就相当于一个执行计划,它是编译产生的一个模板,确定以后数据库没有特殊情况就再也不会去编译这一句,语意就确定了,只是参数一直在变,这样能加快数据库执行的速度,重用执行计划就是重复使用这一个语意来执行数据库语句,再来看我们的第四句,第四句明显语意发生了变化,需要数据库重新进行编译,但实际上,其语意变化并不是我们想看到的,所以我们只需要将其强制性的按照原先的语意进行执行,便是我们所想看到的结果,所以,参数化sql的作用就在这里,具体sql参数化后执行的具体语句四什么样子的,大家可以自行百度,但是一定是用到了sp_executesql这个关键字,这个关键字就是用来做强制重用执行计划的,所以,大家以后在后台写sql语句拼接时,尽量多使用sql参数化的方式,可以大大提高安全性。

如何快速有效的解决SQL注入问题:

安全加速(Secure Content Delivery Network,SCDN)是德迅云安全推出的集分布式DDoS防护、CC防护、WAF防护、BOT行为分析为一体的安全加速解决方案。已使用内容分发网络(CDN)或全站加速网络(ECDN)的用户,购买服务后可为加速域名一键开启安全防护相关配置,全方位保障业务内容分发。

Web攻击防护Web防火墙

  • 有效防御 SQL注入、XSS攻击、命令/代码执行、文件包含、木马上传、路径穿越、恶意扫描等OWASP TOP 10攻击。专业的攻防团队7*24小时跟进0day漏洞,分析漏洞原理,并制定安全防护策略,及时进行防护。
  • 提供智能语义解析功能,在漏洞防御的基础上,增强SQL注入和XXS攻击检测能力。
  • AI检测和行为分析,通过对德迅云积累海量日志进行学习和训练输出多种Web安全防护模型,对用户多请求的多元因子进行智能分析,有效提高检出率,降低误报率;通过信息孤岛、行为检测分析,识别恶意攻击源,保护网站安全。

应用层DDoS防护

  • 威胁情报库:通过大数据分析平台,实时汇总分析攻击日志,提取攻击特征并进行威胁等级评估,形成威胁情报库。
  • 个性化策略配置:如请求没有命中威胁情报库中的高风险特征,则通过IP黑白名单、访问频率控制等防御攻击。
  • 日志自学习:实时动态学习网站访问特征,建立网站的正常访问基线。
  • 人机校验:当请求与网站正常访问基线不一致时,启动人机校验(如JS验证、META验证等)方式进行验证,拦截攻击。
  • 对Slow Headers攻击,通过检测请求头超时时间、最大包数量阈值进行防护。
  • 对Slow Post攻击,通过检测请求小包数量阈值进行防护。.

合规性保障

  • 用户可以对HTTP协议字段进行组合,制定访问控制规则,支持地域、请求头、请求内容设置过滤条件,支持正则语法。
  • 记录所有用户访问日志,对访问源进行TOP N,提供趋势分析,可以根据需要提供日志下载功能。
  • 采用强制静态缓存锁定和更新机制,对网站特定页面进行保护,即使源站相关网页被篡改,依然能够返回给用户缓存页面。
  • 对response报文进行处理,对响应内容和响应进行识别和过滤,根据需要设置数据防泄漏规则,保护网站数据安全。

HTTP流量管理

  • 可以设置源IP或者特点接口访问速率,对超过速率的访问进行排队处理,减缓服务器压力。
  • 可以根据业务需要对请求头和响应头进行处理,可进行请求头替换或者敏感信息隐藏设置。

安全可视化

  • 默认提供Web安全攻击报表、CC攻击防护报表、用户访问统计报表和自定义规则命中报表,满足业务汇报和趋势分析需求。
  • 提供全量日志查询和下载功能,可以通过OpenAPI接口获取实时日志或离线日志信息。
  • 提供基于均值和峰值带宽统计信息,提供攻击带宽和正常占比,随时关注业务状况。提供多种组件,了解业务监控和核心指标变化情况。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1945579.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python爬虫:代理ip电商数据实战

引言:数据访问管理引发的烦恼 作为一名Python博主,爬虫技能对于获取和分析数据至关重要,经常爬一下,有益身心健康嘛。爬虫技术对很多人来说,不仅仅是一种工具,更像是一种艺术,帮助我们从互联网…

大模型入门学习笔记(非常详细)零基础入门到精通,收藏这一篇就够了

一、认识大模型 1.1 从人工智能到大模型的演变 学完本文后,你将能够: 掌握大模型的特点、重要概念以及工作方式 了解大模型的基本概况和产品矩阵 了解大模型,尤其是大语言模型的应用场景和示例 大模型是人工智能领域的一个重要里程碑&a…

C++相关概念和易错语法(23)(set、仿函数的应用、pair、multiset)

1.set和map存在的意义 (1)set和map的底层都是二叉搜索树,可以达到快速排序(当我们按照迭代器的顺序来遍历set和map,其实是按照中序来遍历的,是排过序的)、去重、搜索的目的。 (2&a…

展馆导览系统架构解析,从需求分析到上线运维

在物质生活日益丰富的当下,人们对精神世界的追求愈发强烈,博物馆、展馆、纪念馆等场所成为人们丰富知识、滋养心灵的热门选择。与此同时,人们对展馆的导航体验也提出了更高要求,展馆导览系统作为一种基于室内外地图相结合的位置引…

STM32智能农业监测与控制系统教程

目录 引言环境准备智能农业监测与控制系统基础代码实现:实现智能农业监测与控制系统 4.1 数据采集模块 4.2 数据处理与分析模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:农业监测与优化问题解决方案与优化收尾与总结 1. 引言 智能农…

电脑基础知识 | 电脑的基本组成

电脑作为我们日常工作和娱乐的重要工具,扮演着举足轻重的角色。当我们谈论电脑的基本组成时,其实是在探讨电脑硬件和软件两个核心部分。硬件是电脑看得见、摸得着的物理设备,而软件则是运行在这些硬件之上的程序和指令。两者相辅相成&#xf…

深入浅出mediasoup—WebRtcTransport

mediasoup 提供了多种 transport,包括 WebRtcTransport、PipeTransport、DirectTransport、PlainTransport 等,用来实现不同目的和场景的媒体通信。WebRtcTransport 是 mediasoup 实现与 WebRTC 客户端进行媒体通信的对象,是 mediasoup 最重要…

Electron案例解析——切换主题颜色的案例

效果图 核心 Electron的 nativeTheme.themeSource属性,值是string。有三个参数:system, light 和 dark,用来覆盖、重写Chromium内部的相应的值 Election的api描述值nativeTheme.themeSource被用来覆盖、重写Chromium内部的相应的值system, …

swagger-ui.html报错404

问题1:权限受限无法访问 由于采用的Shiro安全框架,需要在配置类ShiroConfig下的Shiro 的过滤器链放行该页面:【添加:filterChainDefinitionMap.put("/swagger-ui.html", "anon");】 public ShiroFilterFact…

springboot失物招领论坛系统-计算机毕业设计源码56603

目 录 1 绪论 1.1 研究背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2 系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例分析 2.4 系统流程…

QT 信号槽机制

核心函数为 QMetaObject::Connection QObject::connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type Qt::AutoConnection) 参数为 1.信号发生对象 2.信号发生对象的信号 3.槽对象 4.槽对象的槽函…

CAD框架介绍

1、适用范围:矢量编辑软件如 服装模板软件、CAD软件、绘图软件 2、支持PLT,DXF,PDF,GCode(服装裁割指令)等矢量文件导入 3、支持简易的自动手动排料 4、直线,曲线等编辑功能 5、分页输出绘图指令 6、良好的框架结构:绘图引擎…

单向链表

目录 思维导图: 学习内容: 1. 链表的引入 1.1 顺序表的优缺点 1.1.1 优点 1.1.2 不足 1.1.3 缺点 1.2 链表的概念 1.2.1 链式存储的线性表叫做链表 1.2.2 链表的基础概念 1.3 链表的分类 2. 单向链表 2.1 节点结构体类型 2.2 创建链表 2.…

员工网络监控软件:把控员工网络活动的标尺

在竞争激烈的漩涡之中,企业如同一只不断旋转的陀螺,努力保持着自身的平衡和稳定,而员工的网络活动则是那无形却强大的力量,时刻影响着企业的运转。员工网络监控软件仿佛一根坚固无比的轴心,以其精准的标尺帮助企业实现…

分类模型-逻辑回归和Fisher线性判别分析★★★★

该博客为个人学习清风建模的学习笔记,部分课程可以在B站:【强烈推荐】清风:数学建模算法、编程和写作培训的视频课程以及Matlab等软件教学_哔哩哔哩_bilibili 目录 1理论 1.1逻辑回归模型 1.2线性概率模型 1.3线性判别分析 1.4两点分布…

基于区块链的算力交易平台

目录 基于区块链的算力交易平台 核心技术 创新点 算力交易流程和拍卖算法 关键技术 创新点 基于区块链的算力交易平台 核心技术 智能合约: 定义:智能合约是一组情景应对型的程序化规则和逻辑,通过部署在区块链上的去中心化、可信共享的脚本代码实现。作用:智能合…

leetcode10 -- 正则表达式匹配

题目描述: 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 . 和 * 的正则表达式匹配。 . 匹配任意单个字符* 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 示例 1&#xff1…

【工具】轻松转换JSON与Markdown表格——自制Obsidian插件

文章目录 一、插件简介二、功能详解三、使用教程四、插件代码五、总结 一、插件简介 JsonMdTableConverter是一款用于Obsidian的插件,它可以帮助用户在JSON格式和Markdown表格之间进行快速转换。这款插件具有以下特点: 轻松识别并转换JSON与Markdown表格…

解锁PCIe8516高速数据采集卡应用——超声波无损检测

超声波无损检测是无损检测技术的重要手段之一,由于其信号的高频特性,需要采用高速数据采集设备来采集、记录、分析和处理。 某客户需要使用超声波对钢材进行无损检测,由于声波在钢材中的传播速度很高,(纵波CL的传播速度为5900米/秒…

分布式训练并行策略

1.分布式训练的概念 分布式训练(Distributed Training)是指将机器学习或深度学习模型训练任务分解成多个子任 务,并在多个计算设备上并行地进行训练。 一个模型训练任务往往会有大量的训练样本作为输入,可以利用一个计算设备完成…