<>说到url编码,你或许会想起N年前的url编码漏洞。可惜我是"生不逢时"啊,我接触网络时,那个漏洞早就绝迹咯。3 ]* i) w& P5 X8 y6 S6 u
! V8 B3 g @0 |# F
言归正传,URL 编码是什么东东呢?看看我从网上抄的定义: # c |* z( z7 g0 j8 | " e& a J2 s5 t# B( M引用: </P> 8 y# q% W D. R1 Iurl编码是一种浏览器用来打包表单输入的格式。浏览器从表单中获取所有的name和其中的值 ,将它们以name/value参数编码(移去那些不能传送的字符, 将数据排行等等)作为URL的一部分或者分离地发给服务器。不管哪种情况, 在服务器端的表单输入格式样子象这样: ' Q, H$ z% ^; v& u$ e8 J1 P/ i( s) @
( h' s5 L0 X* T, qtheName=Ichabod+Crane&gender=male&status=missing&headless=yes 7 n& G( G; p( o# N ~1 F W4 x0 ^% O0 W- |( O) t/ K: l/ P' s
URL编码遵循下列规则: 每对name/value由&符分开;每对来自表单的name/value由=符分开。如果用户没有输入值给这个name,那么这个name还是出现,只是无值。任何特殊的字符(就是那些不是简单的七位ASCII,如汉字)将以百分符%用十六进制编码,当然也包括象 =, &, 和 % 这些特殊的字符。% I0 P# M* j( u
# F/ I1 k2 n% `2 U
呵呵,明白了吧,其实url编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上"%"。比如"\",它的ascii码是92,92的十六进制是5c,所以"\"的url编码就是%5c。那么汉字的url编码呢?很简单,看例子:"胡"的ascii码是-17670,十六进制是BAFA,url编码是"%BA%FA"。呵呵,知道怎么转换的了吧。 I0 J) ?+ U- v" y
7 V- f, D/ B F7 {4 }URL编码平时我们是用不到的,因为IE会自动将你输入到地址栏的非数字字母转换为url编码。所以对于浏览器来说http://blog.csdn.net/l%61ke2与http://blog.csdn.net/lake2是等效的(注意,第一个url我用%61替换了a)。呵呵,或许你已经想起了,有人提出数据库名字里带上"#"以防止被下载,因为IE遇到#就会忽略后面的字母。破解方法很简单——用url编码%23替换掉#。我本来企图利用url编码来躲过注射检查的,不过失败了,因为服务器端会将url编码转换成字符的。 ! H* a* k' C5 X 1 m) |. l0 W- M# m% w! b3 ~! X等等,好像跑题了啊,呵呵,不好意思:) 1 u. A' [, p' d1 b+ t- Y, @ 1 e, G; |( M0 }4 O* b现在SQL注射非常流行,所以就有人写了一些防注射的脚本。当然啦,思路不一样,效果大不同。各位看官请看下面的××SQL通用防注入asp版部分代码。0 J# X$ r" ? A" h! g
5 U% O9 S+ K# MFy_Url=Request.ServerVariables("QUERY_STRING")4 N% _; ~4 a( Q6 _/ o: \
Fy_a=split(Fy_Url,"&") . y0 \7 F! B$ ^/ O1 q$ ?redim Fy_Cs(ubound(Fy_a))5 x! u! j$ e, h! s
On Error Resume Next( e- R' _; F1 B7 B: P3 V1 Q
for Fy_x=0 to ubound(Fy_a)9 U, @+ ?" x; K
Fy_Cs(Fy_x) = left(Fy_a(Fy_x),instr(Fy_a(Fy_x),"=")-1) 6 r. z+ @" {* i! y! kNext' M- b, X. J6 n+ u
For Fy_x=0 to ubound(Fy_Cs) 8 ^. H! }' v& V7 R' O# qIf Fy_Cs(Fy_x)<>"" Then 8 @6 j" }/ a8 N' f4 s5 p( a; nIf Instr(LCase(Request(Fy_Cs(Fy_x))),"and")<>0 then " `8 b+ b7 @7 z6 oResponse.Write "出现错误!"3 w0 k/ K3 p1 s2 H
Response.End+ Y# ] a2 h/ k% [
End If 5 n ^) p, M' \6 Q5 pEnd If. L% [2 _, J* U- u* p q( M
Next7 E* j' b4 J0 U: D1 I
7 c6 t" S, i- }& { U) Z