文档章节

SQL 注入

passionfly
 passionfly
发布于 2015/02/17 01:09
字数 360
阅读 16
收藏 0
点赞 0
评论 0

例如:String sql="select * from usert where name='"+usernameInput+"' and password='"+pwdinput+"'";
这句是判断当uesrname和password条件都成立时,才会显示结果。
就是用如下的字符串拼接而成

String sql="select * from usert where username='"
+usernameInput
+"' and password='"
+pwdinput

+"'";

在输入用户名hh,密码输入下面的代码,
pwd' or '1'='1
在数据库报务器相当于执行这样的SQL语句:
select * from usert where name='hh' and password='pwd' or '1'='1' ; --这个语句不管前面的条件是否成立,后面的语句总是为真,因此where 条件语句总是成立。
所以就可以跳过前面用户名和密码的判段。
这样就不安全
       //正常的SQL查询语句    
      String sql="select * from usert where name='"+userinput+"' and password='"+pwdinput+"'";
      //userinput用户输入的字符串
      String userinput="hh";
      //pwdinput接收用户输入的字符串
      String pwdinput="pwd' or '1'='1";
这种不安全的情况是在SQL语句在拼接的情况下发生

 

这了主防范这这样”SQL注入安全“可以用预编译解决:

String sql= "insert into userlogin values(?,?)";
  try {
   PreparedStatement ps=conn.prepareStatement(sql);
    for(int i=1;i<100;i++){
    ps.setInt(1, i);
    ps.setInt(2, 8888);
    ps.executeUpdate();
   }
   ps.close();
   conn.close();
  } catch (SQLException e) {
   e.printStackTrace();
  }

这样,不管用户输入是什么,数据库服务器总认为是一个值,而SQL语句是相同的不会重复编译,也不会编译新的SQL语句,所以不管用户怎么输入,都不会产生"SQL注入安全"

















本文转载自:http://blog.sina.com.cn/s/blog_6106a4870100fkpb.html

共有 人打赏支持
passionfly
粉丝 13
博文 106
码字总数 76465
作品 0
西安
关于SQL 注入

1 SQL注入案例 案例1: 某网站后台管理平台测试环境 *:50052/csop/main.do 在登录界面用户名输入 system' or '1'='1 ,密码随意输入.之后输入验证码,点击登录,提示登录出错,后访问上方提供的网...

周翔 ⋅ 2016/08/24 ⋅ 0

SQL注入如何进行攻击

相信大家都领教过sql注入攻击吧,但是大家对sql注入式攻击又了解多少呢?今天四夕就带大家学习学习sql注入如何进行攻击。 什么是sql注入呢? 所谓SQL注入,就是通过把SQL命令插入到Web表单递...

oecp ⋅ 2011/04/07 ⋅ 0

Java程序员从笨鸟到菜鸟之(一百)sql注入攻击详解(一)sql注入原理详解

前段时间,在很多博客和微博中暴漏出了12306铁道部网站的一些漏洞,作为这么大的一个项目,要说有漏洞也不是没可能,但其漏洞确是一些菜鸟级程序员才会犯的错误。其实sql注入漏洞就是一个。作...

长平狐 ⋅ 2012/11/12 ⋅ 0

网站安全检测,高手必备几款SQL注入工具

按照百度说法,SQL注入是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。 利用SQL注入,攻击者可远程利用SQL注入漏洞,窃取用户数...

Yomut ⋅ 2016/07/01 ⋅ 0

Java程序员从笨鸟到菜鸟之(一百零二)sql注入攻击详解(三)sql注入解决办法

在前面的博客中,我们详细介绍了: sql注入攻击详解(二)sql注入过程详解 sql注入攻击详解(一)sql注入原理详解 我们了解了sql注入原理和sql注入过程,今天我们就来了解一下sql注入的解决办...

长平狐 ⋅ 2012/11/12 ⋅ 0

MyBatis如何防止SQL注入

MyBatis如何防止SQL注入 SQL注入是一种代码注入技术,用于攻击数据驱动的应用,恶意的SQL语句被插入到执行的实体字段中(例如,为了转储数据库内容给攻击者)。[摘自] SQL injection - Wikip...

优惠券发放 ⋅ 05/02 ⋅ 0

大话数据库SQL注入的N种姿势

作者:安华金和 思成 一. 背景 数据库凭借其强大的数据存储能力和卓越的数据处理性能,在各行各业的信息化建设中发挥着关键的作用。随着数据库在各行业的大规模应用,数据泄露事件也频繁发生...

安华金和 ⋅ 2016/03/11 ⋅ 0

sql注入那些事儿——如何优雅地进行SQL注入(4)

传送门: sql注入那些事儿——如何优雅地进行SQL注入(1) sql注入那些事儿——如何优雅地进行SQL注入(2) sql注入那些事儿——如何优雅地进行SQL注入(3) sql注入之双查询注入 上一篇,Sunny和大...

程序员Sunny ⋅ 06/03 ⋅ 0

SQL注入攻击原理和解决方法

SQL注入攻击原理 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致...

YuanyuanL ⋅ 2015/08/13 ⋅ 0

避免SQL注入

什么是SQL注入 SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞。可以用它来从数据库获取敏感信息,或者利用数据库的特性执行添加用户,导出文件等一系列恶意...

王爵nice ⋅ 2015/08/10 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 31分钟前 ⋅ 0

VS2015配置并运行汇编(一步一步照图做)【vs2017的链接在最后】

前言 我是上学期学的汇编,因为有vs又不想用课上教的麻烦的dosbox以及masm32,但是一直没找到高亮插件和能调试的(难在运行不了而找不到答案上,出现的错误在最后放出,还请先达们不吝指点)...

simpower ⋅ 40分钟前 ⋅ 0

一起读书《深入浅出nodejs》-node模块机制

node 模块机制 前言 说到node,就不免得提到JavaScript。JavaScript自诞生以来,经历了工具类库、组件库、前端框架、前端应用的变迁。通过无数开发人员的努力,JavaScript不断被类聚和抽象,...

小草先森 ⋅ 43分钟前 ⋅ 0

Java桌球小游戏

其实算不上一个游戏,就是两张图片,不停的重画,改变ball图片的位置。一个左右直线碰撞的,一个有角度碰撞的。 左右直线碰撞 package com.bjsxt.test;import javax.swing.*;import j...

森林之下 ⋅ 50分钟前 ⋅ 0

你真的明白RPC 吗?一起来探究 RPC 的实质

你真的明白RPC 吗?一起来探究 RPC 的实质 不论你是科班出身还是半路转行,这么优秀的你一定上过小学语文,那么对扩句和缩句你一定不陌生。缩句就是去除各种修饰提炼出一句话的核心,而不失基...

AI9o後 ⋅ 52分钟前 ⋅ 0

z-index设置失效?

今天碰到了一个问题,就是在给li设置提示框的时候,有用到遮罩效果,本来想把对应的出现在最顶层,可是不管将li设置的z-index值设为多大,li都没有出现在遮罩层之上。 我在网上查了z-index设...

IrisHunag ⋅ 59分钟前 ⋅ 0

CyclicBarrier、CountDownLatch以及Semaphore使用及其原理分析

CyclicBarrier、CountDownLatch以及Semaphore是Java并发包中几个常用的并发组件,这几个组件特点是功能相识很容易混淆。首先我们分别介绍这几个组件的功能然后再通过实例分析和源码分析其中设...

申文波 ⋅ 今天 ⋅ 0

Java对象的序列化与反序列化

Java对象的序列化与反序列化

Cobbage ⋅ 今天 ⋅ 0

Sqoop

1.Sqoop: 《=》 SQL to Hadoop 背景 1)场景:数据在RDBMS中,我们如何使用Hive或者Hadoop来进行数据分析呢? 1) RDBMS ==> Hadoop(广义) 2) Hadoop ==> RDBMS 2)原来可以通过MapReduce I...

GordonNemo ⋅ 今天 ⋅ 0

全量构建和增量构建的区别

1.全量构建每次更新时都需要更新整个数据集,增量构建只对需要更新的时间范围进行更新,所以计算量会较小。 2.全量构建查询时不需要合并不同Segment,增量构建查询时需要合并不同Segment的结...

无精疯 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部