占位符和sql注入

上一篇 / 下一篇  2016-09-19 15:38:15 / 个人分类:安全测试

sql盲注,例子:
http://域名/intf/topic/接口名?tid=9892645&fid=19166&agent=0&uid=388&currentUrl=&currentReferer=%27+and+%27f%27%3D%27f&1470300816063
转码后就是 ' and 'f'='f
SQL 盲注:通过使用撇号来附加布尔 True/False 字符串表达式

【问题】什么是占位符
大概就是将传递过来的数据,转化成特定格式

直接sql拼接就会有sql注入的风险,但是将传递过来的当做了一个整体转义后进行拼接,就安全了。
jdk直提供接口,而具体实现是由数据库厂商实现的,我们用的就是数据库厂商实现的类。于是我就又去查mysql的jar包源码,发现有个PreparedStatement实现了jdk中的PreparedStatement了。里面的setString方法实现的。
  1. pstmt = conn.prepareStatement("delete from user where user.id=?");  
  2. pstmt.setString(1"w' or '2'='2");    ———这是占位符的一种体现
输出是:delete from user where user.id='w\' or \'2\'=\'2'
单引号都被转义了!
setString的代码里有将特殊字符转义!
主要是单引号和反斜杠

TAG: 占位符 安全 注入

 

评分:0

我来说两句

我的栏目

日历

« 2024-04-29  
 123456
78910111213
14151617181920
21222324252627
282930    

我的存档

数据统计

  • 访问量: 2832
  • 日志数: 1
  • 图片数: 1
  • 建立时间: 2016-09-19
  • 更新时间: 2016-09-21

RSS订阅

Open Toolbar