|
最近公司和好朋友的网站纷纷被IFRAME了,有的挂上了鸽子,有的疯狂地弹窗,有的给人家增加流量。一个个文件去查找替换那些IFRAME代码,刚松口气,不久又加上去了,哎,什么世道!于是他们向我这个"JS高手"(他们强加给我的)求救,我也不能等闲视之,只好击键杀杀杀了。
5 a8 u" L! G5 u7 E* _' O 因为FF(Firefox)不怕IFRAME,于是就拿IE开刀,不知道比尔有没有奖发。我只写了一句代码,就搞定了,哈,痛快。就是IE only(特有的)的CSS中的属性expression,插进去试试,果然那些IFRAME不起作用了。 + s: M) K1 x9 }0 x# L
) K. K& f* l( j' I* ]代码如下: $ p3 l3 O! D0 g! |" i1 j1 I( p' c
- R' m, L- T" z
! h2 B6 J, ]! L* a6 ?9 U1 ?
% k, p6 H" S7 ?- s* c; I
. F: u+ c2 F5 {
分析: $ i8 W# L& _; E* r6 E6 ~
前缀:expression_r(表达式);
6 ~" K7 \5 e, J- K
) j! h6 n( T8 B0 Y: S( U 这个前缀是可以随意更换的,我上面取名为"v",例如我可以换成:abc123:expression_r(this.src='about:blank',this.outerHTML=''); 挂木马的家伙得先看你的CSS里这个前缀,然后挂马的时候写成这样,那个前缀一定要是和你的网站一样的(abc123),才能挂到马,哈哈哈!如果把前缀做成动态的,就非常OK了,看你怎么挂! 3 q7 P* A& F: y$ X
, _; D3 e6 w3 ]' M! J' I f优点:
$ t% ]: p% i0 X( z- t9 g5 [
: }+ q) f0 G4 t6 |! T 3 \, M' x- L% p
2 ~0 E) G$ ?( z可以解决一些站长的烦恼,无须去理会人家插了多少IFRAME木马,那些IFRAME都不起作用;
" k! n0 L' h- p( y$ ~; f7 o- u
! }2 O; J& O' q1 I3 ^8 m保护了访客的安全,这些IFRAME不执行,不下载,就不会破坏到访问的电脑;
; u; w6 S8 O2 i V1 G1 m- f
: j. t6 ~ m8 k: {9 {9 y, j$ R! d代码简单,仅一句CSS样式,不管你是ASP,ASP.NET,JSP,PHP还是RUBY,都通用; 4 H; P" ^! M3 Q. O8 ?4 g
, R7 t0 q a1 W" _
; k! `( f6 Z8 K2 w9 l }+ @. ^缺点: & m: T$ u/ I6 a2 n0 x! w
b& H3 J6 ]+ E5 S
3 r) u+ G4 i& f% ~1 e4 U; j( b
; V, j+ F7 U% T( e- E7 m
只适合防御目前的挂IFRAME方案; : I$ t, |* `5 I4 c
( W9 M5 u h; B+ U4 _* N8 `使得人家挂马的方式要改变了,挂马者可以构造这样的代码使我的防御方式失效,不过挂马都一定得看我的CSS里expression前面的这个"v"字母,我可以换成任意的如:xgz:expression_r(...),哈哈哈,他也拿我没办法,再如,如果我这个前缀是变化的,是不是也行吖 *_*
1 f K5 B6 ~9 z6 s) p- T, ~3 N0 J
$ _ }: e L" L" C0 n/ u+ P { f; |) U4 q
不能防御其他标记的马,如 |