SQL注入攻击以及防护
在学习、面试过程中,多次接触过SQL注入攻击,今天我们就来好好总结一下吧。
SQL注入攻击是黑客对数据库进行攻击的常用手段之一。SQL注入攻击是指提交一段数据库代码,根据程序返回的结果获得某些他想得知的数据中,或者是删除数据库中重要数据以此来达到破坏数据库的目的。相关的SQL注入可以通过测试工具pangolin进行。
对于如何进行注入,我们可以举一个简单的例子,比如查询某一个东西,存在select * from admin where username='XXX' and password='YYY' ,此时如果用户名文本框内输入:abc'' or 1=1-- 在密码框内输入:123 则SQL语句变成:select * from admin where username='abc''' or 1=1 --and password='123’ 不管用户输入任何用户名与密码,此语句永远都能正确执行,用户轻易骗过系统,获取合法身份。
对于sql注入,我们应该懂得如何预防。
1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和
双"-"进行转换等,要在客户端和服务端都进行相关的检测。
2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。
3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。如果数据库是SQL Server,就可以用有名字的参数了,格式是“@”字符加上参数。
4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息,比如对用户名和密码进行加密,这样子用户输入的信息就对数据库没有任何意义了。
5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装,避免黑客利用错误知道数据库的名字,表名等。
6.sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,如大名鼎鼎的Acunetix的Web漏洞扫描程序等。
SQL注入攻击以及防护相关推荐
- sql注入攻击与防护
sql注入的概念 非法用户提交特殊的数据,使得服务器动态脚本构造了对系统有害的sql语句,进而实现了对web系统的攻击,例如数据泄露.非法提权等,这种过程就叫做sql注入. sql注入的原理 对于验证 ...
- sql注入攻击的原理(sql注入攻击防范)
SQL 注入(SQLi)是一种可执行恶意 SQL 语句的注入攻击.这些 SQL 语句可控制网站背后的数据库服务.攻击者可利用 SQL 漏洞绕过网站已有的安全措施.他们可绕过网站的身份认证和授权并访问整 ...
- 什么是SQL注入攻击?SQL注入攻击的危害以及防护
用户打开一个输入框,可以输入任何内容,包括SQL语句.如果网站开发者,没有对用户输入的内容,进行判断和过滤,那么这些语句将被执行.攻击者可以在管理员毫不知情的情况下,对数据库服务器进行操作. SQL注 ...
- SQL注入攻击原理及防护方案
SQL注入攻击是对web应用程序最常见的攻击之一.它是一种恶意攻击,攻击者在向数据库服务器发送查询请求时,会在查询语句中添加恶意代码,从而对服务器造成损害.SQL注入攻击的目的是破坏服务器的安全性,通 ...
- sql参数化还是被注入了_面试官问你 SQL 注入攻击了吗?
目录 为什么要聊 SQL 注入攻击? 什么是 SQL 注入攻击? 如何进行 SQL 注入攻击? 如何防范? 常见面试题 瞎比比 为什么要聊 SQL 注入攻击? 我这人有个想法,就是不管自己跳不跳槽,每 ...
- 网站漏洞修复方案防止SQL注入攻击漏洞
SQL注入漏洞在网站漏洞里面属于高危漏洞,排列在前三,受影响范围较广,像asp..net.PHP.java.等程序语言编写的代码,都存在着sql注入漏洞,那么如何检测网站存在sql注入漏洞? SQL注 ...
- 基于pikachu漏洞平台的 --SQL注入攻击学习与总结
SQL注入攻击 基础知识 常见注释符号 使用示例 pikachu 漏洞联系平台 -- SQL注入 SQL注入攻击流程 注入点类型 数字型注入(POST) 字符型注入(GET) 搜索型注入 XX型注入 ...
- sql注入漏洞,应屏蔽SQL注入攻击
2019独角兽企业重金招聘Python工程师标准>>> 注:SQL注入好比是前端URL传参数请求时参数以SQL 做为参数传入,如 select 1 from dual where ...
- 漏洞解决方案-SQL注入攻击
漏洞解决方案-SQL注入攻击 前置知识 修复方案 代码参考 前置知识 SQL注入攻击,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. ...
最新文章
- 每日一道算法题 - LongestWord(easy-1)
- 010_多表的表关系
- Ubuntu搭建git服务器,外网可访问
- OpenCV学习笔记——Mat类型数据存储
- 初次使用 Elasticsearch 遇多种分词难题?那是你没掌握这些原理
- php跨域资源共享,CORS 跨域资源共享
- java date 判断是否是今天_java——推断日期是否在今天之前
- 混乱开发,既伤身体又伤感情
- 1.react生命周期详解(2020.12.05)
- [高光谱] (6w字巨详细) GitHub开源项目Hyperspectral-Classification的解析
- LAMP集群项目五 nfs存储的数据实时同步到backupserver
- break lab c语言,C语言printf详解
- go语言语法自我总结
- 【electron】nsis重编译,自定义nsis校验弹窗警告的文案
- 体验一下阿里云文字识别OCR
- Python 计算两点之间的距离
- Ant Design Of react modal框动态控制footer展示或者隐藏
- 马云也进军游戏了?还赚了上亿元,网友:马化腾先生怎么看呢?
- 约翰霍普金斯大学计算机博士收入,约翰霍普金斯大学计算机科学研究生项目详情!...
- 禅道删除我的地盘中的任务,提示:您无权访问该迭代