博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL注入式攻击
阅读量:5041 次
发布时间:2019-06-12

本文共 782 字,大约阅读时间需要 2 分钟。

1、为什么会存在这种攻击方式?

  大多数的B/S系统或者C/S系统,都会涉及到数据的存储和交互,数据一般保存在SQL server、Mysql等数据库中。因此,常见的数据交互中,往往需要根据用户输入的信息进行数据库查询等操作:

  (1)用户登录,需要根据用户填写的用户名和密码查询数据库进行校验。

  (2)数据查询,需要根据指定条件过滤对应权限或者范围的数据。

  这些操作一般是由客户端将用户填写的信息提价到web服务器,服务器再转换为相应的sql语句访问数据库。问题就出在服务器转换sql语句的这个过程中。

  

  通常的编程规范都会提醒我们要注意外部输入的数据参数,以免发生一些程序异常。所以,sql注入之所以会存在,其实就是因为程序员在编写web服务端的程序时,没有对客户端提交的参数进行安全检查,导致黑客可以利用这些漏洞来达到自己的目的。

 

2、什么是SQL注入式攻击?

  SQL注入攻击,就是利用程序漏洞,在输入信息中构造特定的sql语句,来绕过程序的权限、控制程序的后台等等。

  例如用户登录模块,一般要检测用户名(username)和密码(password)

  如果后台的检测sql语句为:select * from users where uname = username and pwd = password

  那么,如果在登录时,构造这样的输入:

  a OR '1'='1'

  b OR '1'='1'

  这样就可能绕过用户校验,不需要知道用户名和密码即可登录系统。

 

3、如何防御这种攻击?

  说白了,还是安全校验,这应该是一个程序员必须的编程素养。

  通过过滤用户输入中的特定字符,应该可以有效抵御sql注入攻击。

 

转载于:https://www.cnblogs.com/qaswzh/p/10256835.html

你可能感兴趣的文章
编译Linux驱动程序 遇到的问题
查看>>
大型分布式网站架构技术总结
查看>>
HDU 1017[A Mathematical Curiosity]暴力,格式
查看>>
[算法之美] KMP算法的直观理解
查看>>
EntityFramework 性能优化
查看>>
【ASP.NET开发】菜鸟时期的ADO.NET使用笔记
查看>>
android圆角View实现及不同版本号这间的兼容
查看>>
OA项目设计的能力③
查看>>
Cocos2d-x3.0 文件处理
查看>>
全面整理的C++面试题
查看>>
Web前端从入门到精通-9 css简介——盒模型1
查看>>
Activity和Fragment生命周期对比
查看>>
OAuth和OpenID的区别
查看>>
android 分辨率自适应
查看>>
查找 EXC_BAD_ACCESS 问题根源的方法
查看>>
国外媒体推荐的5款当地Passbook通行证制作工具
查看>>
日常报错
查看>>
list-style-type -- 定义列表样式
查看>>
hibernate生成表时,有的表可以生成,有的却不可以 2014-03-21 21:28 244人阅读 ...
查看>>
mysql-1045(28000)错误
查看>>