本站已运行

攻城狮论坛

作者: 合肥清默
查看: 3191|回复: 40

主题标签Tag

more +今日重磅推荐Recommend No.1

所有IT类厂商认证考试题库下载所有IT类厂商认证考试题库下载

more +随机图赏Gallery

【新盟教育】2023最新华为HCIA全套视频合集【网工基础全覆盖】---国sir公开课合集【新盟教育】2023最新华为HCIA全套视频合集【网工基础全覆盖】---国sir公开课合集
【新盟教育】网工小白必看的!2023最新版华为认证HCIA Datacom零基础全套实战课【新盟教育】网工小白必看的!2023最新版华为认证HCIA Datacom零基础全套实战课
原创_超融合自动化运维工具cvTools原创_超融合自动化运维工具cvTools
重量级~~30多套JAVA就业班全套 视频教程(请尽快下载,链接失效后不补)重量级~~30多套JAVA就业班全套 视频教程(请尽快下载,链接失效后不补)
链接已失效【超过几百G】EVE 国内和国外镜像 全有了 百度群分享链接已失效【超过几百G】EVE 国内和国外镜像 全有了 百度群分享
某linux大佬,积累多年的电子书(约300本)某linux大佬,积累多年的电子书(约300本)
乾颐堂现任明教教主Python完整版乾颐堂现任明教教主Python完整版
乾颐堂 教主技术进化论 2018-2019年 最新31-50期合集视频(各种最新技术杂谈视频)乾颐堂 教主技术进化论 2018-2019年 最新31-50期合集视频(各种最新技术杂谈视频)
Python学习视频 0起点视频 入门到项目实战篇 Python3.5.2视频教程 共847集 能学102天Python学习视频 0起点视频 入门到项目实战篇 Python3.5.2视频教程 共847集 能学102天
约21套Python视频合集 核心基础视频教程(共310G,已压缩)约21套Python视频合集 核心基础视频教程(共310G,已压缩)
最新20180811录制 IT爱好者-清风羽毛 - 网络安全IPSec VPN实验指南视频教程最新20180811录制 IT爱好者-清风羽毛 - 网络安全IPSec VPN实验指南视频教程
最新20180807录制EVE开机自启动虚拟路由器并桥接物理网卡充当思科路由器最新20180807录制EVE开机自启动虚拟路由器并桥接物理网卡充当思科路由器

关于Ibatis的自动防止SQL注入

  [复制链接]
查看: 3191|回复: 40
开通VIP 免金币+免回帖+批量下载+无广告
假设用户执行! V6 z/ |) v# Y8 r
  + g# P% H9 g% {) @! x% t" k
select * from product where id = 5
1 \' V9 c" `) h  ! n3 Z. L1 t# I* e3 M& O
这条语句。其中5是有用户输入的。$ h$ I( H- {( B) b
  
1 V8 U9 Y- b# Z" E( N SQL注入的含义就是,一些捣蛋用户输入的不是5,而是+ m& _) g  s  K, W4 ]9 g
  + ?: o- U6 E0 V; n8 Q: r+ q
  ' @3 ?0 D; x" @. s3 p  N( F) Q- z/ S
  
3 V& L* b5 W$ m# j( L 5;  delete  from  orders
& h5 F- E1 N* B8 F& P  - q1 L  p, X! T5 L' r7 I
  8 U- C( J+ {" t
  + _2 Z) k& r+ n
那么原来的SQL语句将会变为,
, q) y# @4 J; w& ?" a8 Y  ( X8 O' g6 g# H; X; s
  
; w# j  O* @9 w3 ] select * from product where id=5;  delete  from  orders
9 d2 G+ a5 a7 Z* W8 ~ .2 u: h4 H+ _1 r, q* N- U5 y
  ) @# v, K2 x7 V  h$ M
在执行完select后,还将删除orders表里的所有记录。(如果他只删了这些记录,已经谢天谢地了,他可能会做更可怕地事情)。+ f% T- T% P% _; S7 O) }
  $ ]7 I9 U% U# P7 p# B) E$ u1 X) o) w
  
+ n2 L4 s' q: o  
' M4 z4 n2 C% [% l$ l! ^& Z& a 不过庆幸的是,Ibatis使用的是预编译语句(PreparedStatement
- T# }* w. N2 N0 \) j s )。
7 g+ ~! F. `6 g- Q: |0 D* @7 s3 \  
' m2 A$ u1 C; R 上述语句会被编译为,. \& g2 U1 j0 }: z) H7 B- G
  ) u  _4 l* ?1 G% n
  
5 {& K2 V/ @) S% [$ X" m% q9 m' ~' ] select * from product where id=? 7 T4 N, ]+ q$ H! M
  
: c' w7 J6 ]+ f 从而有效防止SQL注入。; t0 Q* m' c4 J. Q9 [$ j
  ( I, o- A# [' e5 G$ B. C+ u; }& ?
  7 }5 }5 V' s1 X
  
! @% f: F: q" `6 s: Q& { 不过当你使用$占位符时就要注意了。/ `5 x# @. w* w/ j* I4 `
  # @6 C7 Z+ l: e
例如:动态的选择列和表. ?! O: |3 S1 J* M2 y- G6 {
  
+ w' t- k1 F1 o3 ~3 Q2 u2 M  ! \5 h  ?2 H; j0 C) c
SELECT * FROM $TABLE_NAME$ WHERE $COLUMN_NAME$ = #value#
6 ]4 Z6 a# E/ l  r; l  7 T+ ~, A% @/ H4 o
这时你一定要仔细过滤那些值以避免SQL注入。当然这种情况不只存在Ibatis中。
( S6 v" ]5 K" V1 Q7 Z! _9 }! S  
, i& D- c: Q: _/ E) K! ?& x  参考资料:  @) \# O# Q  l( M
  ! n! j- Y' s) D6 Q4 h/ H
【iBATIS in Action】3.5.2 SQL injection
2 I& P, k! ^: K

& h( ~+ B! R; _; g$ w# b; M: v9 A
CCNA考试 官方正规报名 仅需1500元
回复 论坛版权

使用道具 举报

whl123 [Lv8 技术精悍] 发表于 2013-10-20 20:22:30 | 显示全部楼层
不知该说些什么。。。。。。就是谢谢
回复 支持 反对

使用道具 举报

ynfield [Lv8 技术精悍] 发表于 2013-10-21 16:37:52 | 显示全部楼层
回复 支持 反对

使用道具 举报

12thomas18 [Lv8 技术精悍] 发表于 2013-10-22 15:23:24 | 显示全部楼层
沙发!沙发!
回复 支持 反对

使用道具 举报

lily111 [Lv8 技术精悍] 发表于 2013-10-22 22:10:15 | 显示全部楼层
相当不错,感谢无私分享精神!
回复 支持 反对

使用道具 举报

dtdonald [Lv8 技术精悍] 发表于 2013-10-23 20:51:57 | 显示全部楼层
沙发!沙发!
回复 支持 反对

使用道具 举报

Firedog [Lv8 技术精悍] 发表于 2013-10-24 17:18:09 | 显示全部楼层
看帖回帖是美德!:lol
回复 支持 反对

使用道具 举报

ICEAGE [Lv8 技术精悍] 发表于 2013-11-7 12:03:30 | 显示全部楼层
回复 支持 反对

使用道具 举报

hulin70 [Lv8 技术精悍] 发表于 2013-11-10 21:51:08 | 显示全部楼层
相当不错,感谢无私分享精神!
回复 支持 反对

使用道具 举报

ayayay [Lv8 技术精悍] 发表于 2013-11-11 16:15:35 | 显示全部楼层
过来看看的,感谢攻城狮论坛
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|无图浏览|手机版|网站地图|攻城狮论坛

GMT+8, 2026-3-10 01:16 , Processed in 0.132147 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4 © 2001-2013 Comsenz Inc.

Designed by ARTERY.cn