java web sql注入测试(1)---概念概述
2015-12-02 19:07
274 查看
在进行java web 测试的时,经常会忽略的测试种类就是sql注入测试,这类缺陷造成的原因是开发技术在这方面欠缺的表现,随便不常见,但一旦有这类缺陷,就很因此对运营的数据造成很多不必要的损失,所以,还是还是值得关注部分,那什么是sql注入?
SQL 注入是一种专门针对SQL语句的攻击方式。通过把SQL命令插入到web表单提交或输入域名或者页面请求的查询字符串中,利用现有的程序,讲这些恶意的SQL注入到后台的数据库中。
SQL注入分2种,一种是平台层注入,一种是代码层注入。前者是因为数据库平台的漏洞或者不安全的数据库配置造成的,后者是因为程序员对输入未进行细致的过滤,从而让非法的,含敏感字符的字符串进入后台,与后台SQL拼接成了恶意的sql导致。
举例:常见的登录页面的场景中,处理不当可能就会存在该类错误。在登录的时候,输入用户名和密码。这时使用HQL产生类似以下语言:“from User user where user name=’”+name+”’ and user password=’”+password+”’ ” ”,这HQL从逻辑上是没什么问题的,但是如果在登入时,用户在用户名或者密码输入框中输入:zhaoxin ‘ or ‘x’=’x”,这使得简单的HQL语句进行组装拼接后,变成了“from User user where user name=’zhaoxin’ or ‘x’=’x’ and user password=’admin’ ”;这样这条语句就用于是真的,永远都可以登入成功。
SQL 注入是一种专门针对SQL语句的攻击方式。通过把SQL命令插入到web表单提交或输入域名或者页面请求的查询字符串中,利用现有的程序,讲这些恶意的SQL注入到后台的数据库中。
SQL注入分2种,一种是平台层注入,一种是代码层注入。前者是因为数据库平台的漏洞或者不安全的数据库配置造成的,后者是因为程序员对输入未进行细致的过滤,从而让非法的,含敏感字符的字符串进入后台,与后台SQL拼接成了恶意的sql导致。
举例:常见的登录页面的场景中,处理不当可能就会存在该类错误。在登录的时候,输入用户名和密码。这时使用HQL产生类似以下语言:“from User user where user name=’”+name+”’ and user password=’”+password+”’ ” ”,这HQL从逻辑上是没什么问题的,但是如果在登入时,用户在用户名或者密码输入框中输入:zhaoxin ‘ or ‘x’=’x”,这使得简单的HQL语句进行组装拼接后,变成了“from User user where user name=’zhaoxin’ or ‘x’=’x’ and user password=’admin’ ”;这样这条语句就用于是真的,永远都可以登入成功。
相关文章推荐
- java中的懒汉单例模式和饿汉单例模式
- java中static和final关键字
- java设计模式之单例模式
- 用Intellij IDEA 14.1创建Java Web项目
- java 实现断点续传
- Java运算符
- JAVA构造方法与方法是啥意思,方法重载方法覆盖俗谈
- JAVA构造函数(方法)与方法是啥意思
- 使用Spring JdbcTemplate实现CLOB和BLOB的存取
- 01-2安装离线springsource-tool-suite的时候非常缓慢问题解决方案
- Springfox swagger-ui 覆盖默认request host
- java解析中国行政区域并在页面显示实现动态逐级筛选
- JAVA代码 运算符
- 01-SpringMVC-HelloWorld
- 第三方包jintellitype实现Java设置全局热键
- java.lang.ClassCastException: java.lang.NoClassDefFoundError cannot be cast to java.lang.RuntimeException
- No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK
- SpringMVC Maven项目 java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServle
- Java安全学习笔记(一)--凯撒密码
- Java基本知识(连载)-面向对象入门