本站已运行

攻城狮论坛

作者: 合肥清默
查看: 3380|回复: 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注入

  [复制链接]
查看: 3380|回复: 40
开通VIP 免金币+免回帖+批量下载+无广告
假设用户执行
! y3 u2 m- m9 C- f, f- n7 O  
( t! @! ~; ~+ O# z7 W  S' b4 e select * from product where id = 5 7 O  C# \( \$ P/ |
  " s3 O, k3 }8 A! V6 N, E% J: z
这条语句。其中5是有用户输入的。1 p) k, l# l' n& [7 H7 ]2 m# E' F: B
  
$ A: S7 {$ p  m" R& [ SQL注入的含义就是,一些捣蛋用户输入的不是5,而是
" O! j$ D& b- w2 |+ l  
5 s1 a' u% W+ e/ I3 b+ [# ?5 s  ' c, t( G7 M! a" o
  
* k  Y2 f. n+ U1 K7 o' Z, { 5;  delete  from  orders1 z. i: u% [+ c6 f: F
  : L# N1 x4 x8 R2 X
  7 A* ?) b+ W) a9 I9 @$ e9 J
  9 b* m6 P/ \$ G, x$ y* N3 p
那么原来的SQL语句将会变为,+ F6 W- c8 i& I4 V. ~9 o2 a
  + e0 m' Q; k, k* e
  7 x* i2 m: h, {, j: @
select * from product where id=5;  delete  from  orders 9 [# x8 o/ D( {5 F
.' g- K; U0 v% m" v
  8 a, d- ~& T# ?# Z5 ]- G
在执行完select后,还将删除orders表里的所有记录。(如果他只删了这些记录,已经谢天谢地了,他可能会做更可怕地事情)。
! a6 e! \$ R+ i. ]    x' A7 @) }% F& R# H
  - W  J& y0 u  J4 A& I8 R  ~
  
& `! q) S* _- M! I% K 不过庆幸的是,Ibatis使用的是预编译语句(PreparedStatement
  `6 g4 T% y$ Q& _- a" u s )。$ S6 D0 J6 }8 I6 ?6 O. ?
  , j4 x  N* ?) w5 b$ w. K
上述语句会被编译为,# |/ K, d* _' C- E- l
  3 {  W6 l( M. p2 h/ \& P1 k4 d
  - x. K5 Q$ C$ }8 Y
select * from product where id=?
0 [9 r6 [% i- N7 p7 }  
* n6 y/ G$ H- ?/ E0 f8 q 从而有效防止SQL注入。2 ]$ ^3 Q( j: j
  ! S7 y, [6 \5 d8 Z6 _6 s. F
  
4 |! {& q! X+ m. \$ v- B$ ]  7 P7 J' U% i2 v' V6 w0 }5 a* a& L
不过当你使用$占位符时就要注意了。
! H6 U& f$ C* t8 l, d: I  F0 J: D" A  
8 D' h7 }* g/ q" h* Z2 A: ?* I$ L 例如:动态的选择列和表
' y0 J$ A7 q* n4 v7 x9 K# m  
' i/ N, D$ |0 H3 Z  f  . J9 F" c. Q: x
SELECT * FROM $TABLE_NAME$ WHERE $COLUMN_NAME$ = #value#
8 K) j- s$ Y3 y! {2 G  
: d6 C0 B4 a. c* F' n 这时你一定要仔细过滤那些值以避免SQL注入。当然这种情况不只存在Ibatis中。' ^' @6 Z# F" X0 z0 S$ g
  9 ]: ^: [) f" n2 \& h; ^3 n& M
  参考资料:
6 l) r# x+ N, @+ O, ~6 {: J1 ]% U  : l' Y& p! t; d% g6 u
【iBATIS in Action】3.5.2 SQL injection
) Y9 A0 |9 g$ d' [) i" ^
; T% U0 w* k0 ^5 g3 U  V7 z
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-7-5 14:50 , Processed in 0.117805 second(s), 15 queries , Gzip On, MemCache On.

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

Designed by ARTERY.cn