/ }' z% u* M2 E) f' x! O只要纠正所有批量查询的语法,无论你是否使用分号,查询的解析器依然能正确的去解释它们的。 : C4 |, a) v8 X; O, R* }9 D' z4 E5 c6 j( F, a' i0 J! g9 h1 s8 U
2,避免使用简单确认 ) s8 ?0 ]$ `% ^$ h4 R: x& I: s3 f6 N) z% C& Z, G6 u+ t
一些输入确认机制使用一个简单的黑名单,组织或删除任何出现在这个名单中的数据,比如防注入程序。6 E% T. ^1 F4 h; I/ a# W
) N+ H2 x/ N. B* R/ k/ K这一般要看这个机制是否做的足够的好了,黑名单是否足够能确保安全。如果只是简单的黑名单,那也有机会突破的。; L9 j6 F$ L8 ~" P
4 G8 i' G2 o; d0 F
A,如果select关键词被阻止或删除( i3 o. c) h* v. e3 P
' x' n5 u# ~6 D& u4 p
我们可以输入:0 A" F# [4 G* O
' K/ z, A$ m( T$ N5 oSeLeCt 注意大小写 ! D! q# D& i0 h( t : \6 d5 [& V& o9 w! l G; O' dselselectect 还记得ewebeditor是怎么过滤asp的么?. P2 T4 Q- v, d+ t& U: P5 ~
4 w! b% t5 Z& H. Q* x& S
%53%45%4c%45%43%54 URL编码; D0 I: h( g* s* X# O- `; I
( R4 j( w- g. c4 \" Y0 d- k* M
%2553%2545%254c%2545%2543%2554 对上面的每个%后加了一个25 2 D4 w5 K$ \; g% R ; z) J J Y4 x& e1 T3,使用SQL注释符 8 u& z4 D# ]# q* b! L1 `; U 7 C/ f& W& M8 a% H- m7 m+ E2 ]' z' SA,使用注释来冒充注入的数据中的空格。- Z) U0 `! Z, q& {# m( u% G
, G! ~: \& J& j) Z
select/*yesu*/username,password/*yesu*/from/*yesu*/admin 0 W+ ~ k' Q6 H ' @0 P5 X" x6 ~$ S, Q/*yesu*/来冒充空格 & V, n9 h+ z; y: w2 t* c. w - G5 c4 `2 m* gB,使用注释来避开某些注入的确认过滤。9 n4 i; ~. q; d& r! P