什么是SQL注入(SQL Injection)?

SQL注入是网站攻击途径之一,这里引用一下百度百科的解释:“所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令”。

简单示例

网站的登录界面,需要用户输入用户名和密码来进行登录,如果网站开发者在开发时没有考虑对SQL注入加以防范,则恶意攻击者就可以通过在用户名和密码输入框中添加特定的SQL语句,以达到查询后台数据库获取数据,甚至对后台数据库中的数据造成破坏的目的。

网站所有用户的用户名和密码一般都保存在后台数据库的表中,当用户输入用户名和密码时,通过执行诸如下面形式的查询语句来验证用户名和密码是否输入正确。

select * from login where username='XXX' and password='YYY'

如果恶意攻击者对用户名和密码分别输入XXX和password' OR 1=1,则验证用户名和密码时将执行这样的语句:

select * from login where username='XXX' and password='password' OR 1=1

因为1=1永远为真,因此如果开发者没有采取任何措施验证用户输入,就会使得攻击者在无需知道正确的用户名和密码的情况下轻易的登录成功。

如何测试SQL注入漏洞

作为Tester,最关注的就是如何测试SQL注入漏洞,基于我目前的理解,那就是:以黑客的心态,通过各种SQL注入方法,来攻击被测目标。因此,掌握各种SQL注入方法很重要。本文的参考资料中介绍了一些SQL注入方法,以后有时间,再进行research整理SQL注入方法吧:)

参考资料:

SQL注入攻击

MSDN-SQL注入

最新文章

  1. pullToRefreshListView的简单使用
  2. 在WebAPI使用Session
  3. python基础3
  4. Timestamp 使用
  5. Linux 守护进程和超级守护进程(xinetd)
  6. node Later定时任务
  7. HDU 4746 Mophues 莫比乌斯反演
  8. C#关于ref与out的总结
  9. cocos2dx 3.x Value、Vector和Map意识
  10. Windows WDDM显卡驱动框架及GPUView工具的使用(1)
  11. Halcon相关
  12. 从PMP培训归来,跟大家聊聊做项目的套路
  13. Vue(四)之webpack和vue-cli
  14. 【转】C++命名空间 namespace的作用和使用解析
  15. spring源码分析系列 (5) spring BeanFactoryPostProcessor拓展类PropertyPlaceholderConfigurer、PropertySourcesPlaceholderConfigurer解析
  16. 如何合并ts文件?
  17. Terminal run py文件
  18. [Android Pro] AndroidStudio IDE界面插件开发(进阶篇之Editor)
  19. List集合实现简易学生管理
  20. 20155238 2016-2017-2 《Java程序设计》第六周学习总结

热门文章

  1. 4.1 spring-alias 标签的解析;
  2. .substr()在字符串每个字母前面加上一个1
  3. [转载]MongoDB查询优化原则
  4. C#读取网页源码
  5. PAT-乙级-1037. 在霍格沃茨找零钱(20)
  6. hdu 4664 Triangulation 博弈论
  7. TCP协议可靠性数据传输实现原理分析
  8. mybatis整合redis
  9. ajax readyState的五种状态详解
  10. 数据段、代码段、堆栈段、BSS段