在学习、面试过程中,多次接触过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注入攻击以及防护相关推荐

  1. sql注入攻击与防护

    sql注入的概念 非法用户提交特殊的数据,使得服务器动态脚本构造了对系统有害的sql语句,进而实现了对web系统的攻击,例如数据泄露.非法提权等,这种过程就叫做sql注入. sql注入的原理 对于验证 ...

  2. sql注入攻击的原理(sql注入攻击防范)

    SQL 注入(SQLi)是一种可执行恶意 SQL 语句的注入攻击.这些 SQL 语句可控制网站背后的数据库服务.攻击者可利用 SQL 漏洞绕过网站已有的安全措施.他们可绕过网站的身份认证和授权并访问整 ...

  3. 什么是SQL注入攻击?SQL注入攻击的危害以及防护

    用户打开一个输入框,可以输入任何内容,包括SQL语句.如果网站开发者,没有对用户输入的内容,进行判断和过滤,那么这些语句将被执行.攻击者可以在管理员毫不知情的情况下,对数据库服务器进行操作. SQL注 ...

  4. SQL注入攻击原理及防护方案

    SQL注入攻击是对web应用程序最常见的攻击之一.它是一种恶意攻击,攻击者在向数据库服务器发送查询请求时,会在查询语句中添加恶意代码,从而对服务器造成损害.SQL注入攻击的目的是破坏服务器的安全性,通 ...

  5. sql参数化还是被注入了_面试官问你 SQL 注入攻击了吗?

    目录 为什么要聊 SQL 注入攻击? 什么是 SQL 注入攻击? 如何进行 SQL 注入攻击? 如何防范? 常见面试题 瞎比比 为什么要聊 SQL 注入攻击? 我这人有个想法,就是不管自己跳不跳槽,每 ...

  6. 网站漏洞修复方案防止SQL注入攻击漏洞

    SQL注入漏洞在网站漏洞里面属于高危漏洞,排列在前三,受影响范围较广,像asp..net.PHP.java.等程序语言编写的代码,都存在着sql注入漏洞,那么如何检测网站存在sql注入漏洞? SQL注 ...

  7. 基于pikachu漏洞平台的 --SQL注入攻击学习与总结

    SQL注入攻击 基础知识 常见注释符号 使用示例 pikachu 漏洞联系平台 -- SQL注入 SQL注入攻击流程 注入点类型 数字型注入(POST) 字符型注入(GET) 搜索型注入 XX型注入 ...

  8. sql注入漏洞,应屏蔽SQL注入攻击

    2019独角兽企业重金招聘Python工程师标准>>> 注:SQL注入好比是前端URL传参数请求时参数以SQL 做为参数传入,如 select 1  from dual where ...

  9. 漏洞解决方案-SQL注入攻击

    漏洞解决方案-SQL注入攻击 前置知识 修复方案 代码参考 前置知识 SQL注入攻击,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. ...

最新文章

  1. 每日一道算法题 - LongestWord(easy-1)
  2. 010_多表的表关系
  3. Ubuntu搭建git服务器,外网可访问
  4. OpenCV学习笔记——Mat类型数据存储
  5. 初次使用 Elasticsearch 遇多种分词难题?那是你没掌握这些原理
  6. php跨域资源共享,CORS 跨域资源共享
  7. java date 判断是否是今天_java——推断日期是否在今天之前
  8. 混乱开发,既伤身体又伤感情
  9. 1.react生命周期详解(2020.12.05)
  10. [高光谱] (6w字巨详细) GitHub开源项目Hyperspectral-Classification的解析
  11. LAMP集群项目五 nfs存储的数据实时同步到backupserver
  12. break lab c语言,C语言printf详解
  13. go语言语法自我总结
  14. 【electron】nsis重编译,自定义nsis校验弹窗警告的文案
  15. 体验一下阿里云文字识别OCR
  16. Python 计算两点之间的距离
  17. Ant Design Of react modal框动态控制footer展示或者隐藏
  18. 马云也进军游戏了?还赚了上亿元,网友:马化腾先生怎么看呢?
  19. 约翰霍普金斯大学计算机博士收入,约翰霍普金斯大学计算机科学研究生项目详情!...
  20. 禅道删除我的地盘中的任务,提示:您无权访问该迭代

热门文章

  1. redhat7.6配置网络yum源
  2. 微信小程序组件和插件
  3. Flink【优质】面试题摘录
  4. 交易日九点到九点半的挂单撤单以及价格的一点心得
  5. 【Linux】软件安装、仓库搭建、服务器配置
  6. 面向对象程序有哪些优点呢?
  7. 深圳中学老师工资单曝光,秒杀程序员,网友:酸了酸了
  8. 高考成绩查询2021汕头市,2021汕头市地区高考成绩排名查询
  9. 网站服务器主要是pcu还是内存,PCU占用一直跑的很高的真正元凶
  10. 为什么说DAO是未来的公司形式