SQL注入是什么?如何防止?
SQL注入是一种注入攻击,可以执行恶意SQL语句。下面本篇文章就来带大家了解一下SQL注入,简单介绍一下防止SQL注入攻击的方法,希望对大家有所帮助。
什么是SQL注入?
SQL注入(SQLi)是一种注入攻击,可以执行恶意SQL语句
它通过将任意SQL代码插入数据库查询,使攻击者能够完全控制Web应用程序后面的数据库服务器
攻击者可以使用SQL注入漏洞绕过应用程序安全措施可以绕过网页或Web应用程序的身份验证和授权,并检索整个SQL数据库的内容
还可以使用SQL注入来添加,修改和删除数据库中的记录。
SQL注入漏洞可能会影响使用SQL数据库(如MySQL,Oracle,SQL Server或其他)的任何网站或Web应用程序
犯罪分子可能会利用它来未经授权访问用户的敏感数据:客户信息,个人数据,商业机密,知识产权等
SQL注入攻击是最古老,最流行,最危险的Web应用程序漏洞之一
SQL注入攻击的类型
SQL注入攻击可以通过多种方式执行。在选择特定攻击方法之前,攻击者可能会观察系统的行为。
- 带内注入
这是典型的攻击,攻击者可以通过相同的通信通道发起攻击并获得结果。这是通过两种带内技术完成的:
● 基于错误的SQL注入:从显示的错误消息中获取有关数据库的信息
● 基于联合的SQL注入:依赖于攻击者能够将UNION ALL被盗信息的结果与合法结果连接起来。
这两种技术都依赖于攻击者修改应用程序发送的SQL,以及浏览器中显示的错误和返回的信息。如果应用程序开发人员或数据库开发人员无法正确地参数化他们在查询中使用的值,那么它会成功。两者都是试错法,可以检测到错误。
- 盲注入
也称为推理SQL注入,盲注入攻击不会直接从目标数据库中显示数据;相反,攻击者会仔细检查行为中的间接线索。HTTP响应中的详细信息,某些用户输入的空白网页以及数据库响应某些用户输入需要多长时间,这些都可以是线索,具体取决于攻击者的目标。他们还可以指向攻击者尝试的另一个SQLi攻击途径。
- 带外注入
这种攻击有点复杂,当攻击者无法在单个直接查询 - 响应攻击中实现其目标时,攻击者可能会使用此攻击。通常,攻击者会制作SQL语句,这些语句在呈现给数据库时会触发数据库系统创建与攻击者控制的外部服务器的连接。以这种方式,攻击者可以收集数据或可能控制数据库的行为。
二阶注入就是一种带外注入攻击。在这种情况下,攻击者将提供SQL注入,该注入将由数据库系统的单独行为存储和执行。当二级系统行为发生时(它可能类似于基于时间的作业或由其他典型管理员或用户使用数据库触发的某些事情)并且执行攻击者的SQL注入,那就是当“伸出”到系统时攻击者控制发生了。
如何防止SQL注入攻击?
以下建议可以帮助防止SQL注入攻击成功:
- 不要使用动态SQL
避免将用户提供的输入直接放入SQL语句中;最好使用准备好的语句和参数化查询,这样更安全。
- 不要将敏感数据保留在纯文本中
加密存储在数据库中的私有/机密数据;这样可以提供了另一级保护,以防攻击者成功地排出敏感数据。
- 限制数据库权限和特权
将数据库用户的功能设置为最低要求;这将限制攻击者在设法获取访问权限时可以执行的操作。
- 避免直接向用户显示数据库错误
攻击者可以使用这些错误消息来获取有关数据库的信息。
- 对访问数据库的Web应用程序使用Web应用程序防火墙(WAF)
这为面向Web的应用程序提供了保护,它可以帮助识别SQL注入尝试;根据设置,它还可以帮助防止SQL注入尝试到达应用程序(以及数据库)。
- 定期测试与数据库交互的Web应用程序
这样做可以帮助捕获可能允许SQL注入的新错误或回归。
- 将数据库更新为最新的可用修补程序
这可以防止攻击者利用旧版本中存在的已知弱点/错误。
总结:SQL注入是一种流行的攻击攻击方法,但是通过采取适当的预防措施,例如确保数据加密,保护和测试Web应用程序,以及您是最新的补丁程序,您可以采取有意义的步骤来保持您的数据安全
原文参考链接
SQL注入是什么?如何防止?相关推荐
- php mysql 防 sql注入_php 防sql注入方法
php防sql注入的方法:1.使用mysql_real_escape_string方法转义SQL语句中使用的字符串中的特殊字符:2.打开magic_quotes_gpc来防止SQL注入:3.通过自定义 ...
- resultset mysql_MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)...
[声明] 欢迎转载,但请保留文章原始出处→_→ [正文] 一.ResultSet接口的介绍: 对数据库的查询操作,一般需要返回查询结果,在程序中,JDBC为我们提供了ResultSet接口来专门处理查 ...
- mybaits的模糊查询_mybatis模糊查询防止SQL注入(很详细)
SQL注入,大家都不陌生,是一种常见的攻击方式.攻击者在界面的表单信息或URL上输入一些奇怪的SQL片段(例如"or '1'='1'"这样的语句),有可能入侵参数检验不足的应用程序 ...
- SQL注入漏洞全接触--入门篇
随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进 ...
- Sql注入和Html注入
举例说,有一间公司的网页服务器上有一个留言板的代码,用来让用户发表简短的口信,例如: hello word!!!! 不过,这个代码原来有漏洞.一个意图入侵者得悉这间公司采用了有问题的代码,于是试图通过 ...
- mysql注入实例获取答案_本文实例讲述了MySQL解决SQL注入的另类方法。分享给大家供大家参考,具体如下:问题解读我觉得,这个问题每年带来的成本可以高达数十亿美元了。本文就来谈谈,...
本文实例讲述了MySQL解决SQL注入的另类方法.分享给大家供大家参考,具体如下: 问题解读 我觉得,这个问题每年带来的成本可以高达数十亿美元了.本文就来谈谈,假定我们有如下 SQL 模板语句: se ...
- 【数据库】 兴唐第二十七节课只sql注入
首先来一个用户登录程序 public static void login(String username, String password) {Connection conn = null;State ...
- 雷林鹏分享:MySQL 及 SQL 注入
MySQL 及 SQL 注入 如果您通过网页获取用户输入的数据并将其插入一个MySQL数据库,那么就有可能发生SQL注入安全的问题. 本章节将为大家介绍如何防止SQL注入,并通过脚本来过滤SQL中注入 ...
- WEB攻击手段及防御第2篇-SQL注入
概念 SQL注入即通过WEB表单域插入非法SQL命令,当服务器端构造SQL时采用拼接形式,非法SQL与正常SQL一并构造并在数据库中执行. 简单的SQL注入的例子: 例1:test123456 or ...
- WEB安全,SQL注入漏洞的加固代码汇总
该修复任务专用于处理以下安全性问题: [1] SQL 盲注 [2] SQL 注入 [3] XPath 注入 [4] 发现数据库错误模式 [5] 跨站点脚本编制 [6] 使用 SQL 注入的认证旁路 [ ...
最新文章
- 导师 = advisor + supervisor
- iBatis.Net(C#)数据库查询
- 文献记录(part78)--Structure-Constrained Low-Rank Representation
- 【PPT已更新】给开发者的区块链技术指南 | JTalk 掘金线下活动第五期
- 智慧农业技术解决方案
- java速成课程_极*Java速成教程 - (5)
- 三星s8清除html查看器,三星Galaxy S8/S8+双清教程_怎么清理数据缓存和恢复出厂设置...
- 吐鲁番市谷歌高清卫星地图下载
- 《三重门》作者的机灵与人物的笨拙
- C/C++程序固定单核CPU运行(几个示例)
- Windows 由于无法验证发布者,windows阻止控件安装怎么办
- CRACK:CAD Exchanger SDK 3.15.0/MAC/WIN/LINUX/Android
- Android性能优化实践
- FileNotFoundException: java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset 错误解决
- NoteExpress引用文献出现ADDIN NE.Ref.
- eqq for shell
- 一次rman恢复引起的nologging问题模拟
- zimbra mysql stopping_zimbra数据备份
- android 平板怎么刷机,小白必看,安卓平板电脑刷机教程之一键刷机
- AcWing 3465. 病毒朔源 (邻接表DFS 详解)
热门文章
- UPS技术的“前世今生”【基础篇.PPT】
- 机房冷热通道系统整体解决方案
- GB50174-2017新旧对比
- UPS对发电机组的影响
- ML之RF/kNNC/LoRC/SVMC/RFC/GBDTC:利用Pipeline(客户年龄/职业/婚姻/教育/违约/余额/住房等)预测客户是否购买该银行的产品二分类(评估、调优、推理)
- Py之glob: glob库文件名模式匹配+返回所有匹配的文件路径列表库的简介、使用方法之详细攻略
- Paper:《Multimodal Machine Learning: A Survey and Taxonomy,多模态机器学习:综述与分类》翻译与解读
- 成功解决 gpu_device.cc:1120] Creating TensorFlow device (/device:GPU:0) - (device: 0, name: GeForce 94
- Py之dominate:python的dominate库的简介、安装、使用方法之详细攻略
- matlab中文本文件与图像转化