前言
. c' [ i2 ^% C: r. o去年我说过要写个关于cookie stuffing(简称CS)的资料.开写了大部分后, 于去年9月份时中断$ Z+ O# @. l) l
后来断续又写了一点,还没写完.
/ u' b; O3 F% x. N; I8 Y& ?现在决定暂时不用PDF形式发布,而是用贴子分几期在5月份发完.
; N; z: H. L) k) e整个资料内容不涉及实战,以介绍方法为主,里面的代码来自老外,和本人无关,请注意了.
+ X- J" K* M& Y- Y- i2 @' BOK,首先我还是重复下什么是cookie stuffing的概念
+ l/ d! m7 `: y3 o2 D5 H. Acookies是通过html中header(头部信息)传递的,除非浏览器的做了一定安全设置,否则是不会忽略这个信息的., p& ^. [! v$ T# v7 [+ t; g. m* m
既然cookies通过头部信息传送,那么,一个网页可以不必通过一个header传递,通过图片等方式也可以实现.3 b2 v7 z. C7 \ W8 P0 ]
当一个浏览者向服务器发送一个图像请求时,在返回的页面之中,一个header已经被包括了.浏览器获得了header,就不需要管那些文章信息,一个cookies就是这样植入的.
n* T# u7 a$ t0 `( Ocookie stuffing的存在是因为广告联盟用cookie来跟踪业绩.用最简单的话就是说,广告联盟给你一个链接,当他人点击了链接并购买了产品,你就获得了佣金.0 K1 L5 y& m- u. U
现在你知道了,就是要想办法让人多点击,你就可能得到更多提成.比如把广告图片放在你站上,并尽量使图片和网站融为一体.但可怜的是这样做效果很差,几乎没人点你的广告图片.
; J" t. `5 _5 x/ e所以,怎样强制他人点击链接呢?从而cookie stuffing就这样被发明出来了.它的最终目标就是把affiliate cookies加入浏览者的电脑中,以投机取巧获取利益.% T3 w7 m( F4 Q ]- W
看起来cookie stuffing是一种容易赚钱的方法.当然,广告联盟不是傻瓜,他们有很多办法能抓到你,这在以后会讲到的.& Y( l, G" m$ H9 e; K4 P2 K; \
基本方法
& M; m7 _/ W9 }0 |- |7 N1. Image Stuffing
# S) y3 }# X; p- A' r" |cookie stuffing一般在开头会先讲这个Image Stuffing的,代码很简单,这里是个例子:
) Y z# l" s/ [2 l1 d<img src=”http://www.advertcn.com/affiliatelink”>. c5 t; i6 {2 O4 A
在大多数浏览器,它表现为一个大的红叉,看上去像是服务器出了毛病一样.
9 s. d6 s7 D( M# A0 W. @! j在国外大多数论坛有不少会员是专家,如果你在论坛用这个方法,会很容易被他们识破的.; |5 l' Y: w7 |; d
所以, 在实施一些方法前, 还有很多的东西要学.
& t/ [, N4 c# h7 i# B, l: z, S回过来继续说Image Stuffing.为了不让用户发现,你不得不设置图片大小为1个像素,代码如下:
+ L! H( F2 U4 y8 C1 S, C- V& m<img src=”http://www.advertcn.com/affiliatelink” height=1 width=1>1 R4 x S4 j) u' ]3 N
但这样还是会显示一个红叉,所以,再给它加上个alt标签,用来替换你想要的文本文字.
7 C2 N2 V& b* I. ]0 Oimage tag stuff:
; Z$ v# S5 ]5 ^5 _* C& }. d<img src=”http://www.advertcn.com/affiliatelink” height=”1″ width=”1″ alt=” “>
2 n+ Z0 G; ]2 k/ R$ P* u然后,当它和其它方法结合在一起后,就成为cookie stuffing牢固的基石了,后面会继续讲到的.
" \* r [7 Q: d+ E2. Iframe Stuffing
7 J9 i5 N% x1 nIframe对初学者来说相当容易理解(不知道Iframe为何物的,请自己查资料吧),以下是Iframe Stuffing的代码例子.& D, _% x1 o( g, X9 O( t
<iframe src=”http://www.advertcn.com/affiliatelink” height=”1″ width=”1″>
3 t# J) v( h% N7 l b& }访问者来到你的网站后,就不知不觉的已打开窗口访问了商家的网站,也就是点击了http://www.advertcn.com/affiliatelink,因为这个Iframe的大小是1个像素,所以访问者毫无知觉.如果他们购买了东西,提成就是你的了.
3 ?( P# p3 R: q8 _Iframe Stuffing也很容易让你马上被banned.当然,也有办法隐蔽它,在后面我们会讨论到.
7 o! w* T) H: o7 e3. Javascript Stuffing
; `* {; `9 R1 S! c& t很久以前-从互联网早期,到现在,有个东西叫弹窗的,可以说是最原始的强制植入cookie的方式.确切的说,属于不完全意义上的cookie stuffing.
- V' F2 N* f" S' `' l% `8 m9 X效果是一样的,只是很令访问者反感.所以大多数浏览器有了可以锁定弹出式窗口的功能.
: v" H2 j! h$ k8 }: n% v现在,我们来到了有点复杂的cookie stuffing的章节-Javascript Stuffing,这个需要一点程序知识,毕竟Javascript是一种脚本语言.因为较难明白,我们就跳过程序知识这部分.
8 Z+ y, T0 B: x# O; V0 m) O/ s下面举个代码例子,并简单地解释一下它是如何工作的:! p" y( l. o9 `, n6 X# `4 a
<script language=”JavaScript”>6 R8 I- Z& P; S/ n, D" o. Y) w
<!– window.focus();6 I8 `% o! }; [; e! a) \
setTimeout(“window.focus()”,900);
5 f( S# V0 l+ g, z6 k: h/ a//–>
4 x5 @- W4 G, X, `</script>9 |: u$ P: e2 Q
<script language=”javascript”>
$ K. K' k" \! w<!–4 i. n- U1 s, C' v: E% r
w=window.open(‘http://www.advertcn.com/affiliatelink’,'affiliate_description’);w.blur();9 m, Z( g' r5 I/ A& d
//–>
, l- I% \4 s6 n7 b</script>6 y; z- k% a4 I0 p+ L
这个独特的方法是过了设定时间后,打开弹出式窗口(商家的网站,或者是你的推广链接),并移离目前主窗口的视觉中心,放置于主窗口的后面,对访问者来说,就不那么烦人侵扰了.
' [9 T( a2 d A+ ~# N由于访问者其实已用你的链接打开了商家的网站,所以他们被植入了cookie.
; `. T2 ^! D `如果你懂得javascript,懂得弹出式窗口,够精通javascript编程的话,你应该有能力值得花些时间去改进发展Javascript Stuffing.
3 {: K5 I) P7 N3 g! L/ }但大多数时候,Javascript Stuffing已进入死胡同,发展余地已不大.9 R: ?( p+ {/ ?' u
后记:3 j/ a( K) o8 y- q6 Z) G) ~$ z1 [
数年前,我在CB培训的群里,也给过学员类似的代码,不一样的在于,我给的是隐形弹窗,也就是说肉眼是看不见这个弹窗的.
4 f7 _# v8 d6 }9 w: A代码作者原本是出售这个程序的,后来05年取消了,改为到他网站上在线生成代码.现在他的网站已指向了别的地方,所以别问我要这个东西啊.
% ?+ Y# B% d! ^% N& _2 R) [4. .htaccess stuffing 通常,即使是会点网站设计的人,也不一定知道.htaccess是什么.
& N: U& h9 [2 y: r, O$ s.htaccess在大多数服务器是个隐藏文件,有时被默认是没有的,所以实际上需要我们建立一个.
; O/ f% x: y% K) Q4 N.htaccess这个文件告诉服务器当一个特别条件相适应时,应该去干什么.2 O+ [; \% X$ _, m5 j
好了现在我们至少知道了什么是.htaccess文件,我们就开始复习Image Stuffing代码吧.
' u7 ^7 t; i- [比如说你在论坛的签名.
# K1 q1 D+ j" p2 E" {) }! j5 ?<img src=” ”>
* o7 L# N% I9 \% @然后我们把以下htaccess文件传到空间里, X" g1 F9 [- I1 \
RewriteEngine on" ~+ D- `) a( z% [) [
RewriteRule signature.jpg http://www.advertcn.com/affiliatelink/ [L,R=301]7 p% e5 k# N# ?: A9 D" j
这个htaccess是说,访问者在读取你的论坛签名里的图片时,会被转向到你的affiliate链接,这样他们就被植入了cookie.. @1 g6 V$ p. Z6 L) s
那么,你的图片在浏览器里真正看上去是这样的:
# l( L2 j2 b" m" V$ T: V' ?5 S<img src=”http://www.advertcn.com/affiliatelink”>
- y( }* [9 l" l3 c1 \还记得前面讲到过的Image Stuffing吗?现在访问者看到的链接就是一个真实的图片了.* O6 h$ J# \6 J6 i3 E
5. Flash Stuffing
6 Y3 u, t9 a S6 G3 |关于Flash Stuffing这一部分,还可以参见一本书,CookieStuffingGuide,广告中国有下载,地址:+ s2 ^6 K5 X6 c! `
http://advertcn.com/viewthread.php?tid=72234&extra=page%3D1 P& _, j7 q! q
相信大家都玩过Flash游戏吧,可以使用键盘或鼠标操纵动画里的部分动作,交互性很强,这便是ActionScript的厉害之处,它与JavaScript结构类似,但是它的编程要容易得多.
( d$ G# w/ f e/ E9 l7 ?: Z3 @用ActionScript创作出来的动画具有很强的交互性,Flash程序脚本语言就是ActionScript,译作行动脚本.最近版本是3.0.: ~/ {1 H9 m. y/ [/ P: N1 S4 v3 b
讲述Flash Stuffing,专业术语较多,我看资料时头也很大.所以,一些复杂的理论我跳过去省略掉.
8 r2 K7 ~3 R/ t& W# o3 rFlash几乎无可能对所发送的referer作假,所幸它有个可以利用的漏洞,那就是sendToURL().: h- X# Q! `* d; o8 y5 e( z
ActionScript3.0里有个叫sendToURL()的功能,这个功能的设计是,发送信息到一个网站,但不用等待响应.
! l x' U+ V5 D5 T% P/ H( p: i D具体来说,sendToURL()发送一个URL到服务器确认,但不理睬任何响应.也就是说,它用访问者的浏览器(你的cookie stuffing”受害者”)提交一个请求到一个网站,但浏览器被假设为不理睬任何响应.* T# Q- A( [% H" @ d
但头部信息是不会被拒绝的,cookie能穿越sendToURL()未触及的功能通过去,cookie的植入自然也就无疑问.
! q5 D# [+ T, E5 ^, a如果你会PHP的话,你可以指定哪个浏览器不发送空白的referers,以及阻止来自被发送到sendToURL()的信息.你还可以设定你的PHP文件指令,优化你想要的CTR比率,以保持稳定的收入.
4 Q4 }/ C, M6 m7 w0 }( V/ q此类程序有几种,有的已停止出售.最好是找人写一个针对特定联盟的.当然前提是联盟默许cookie stuffing.
$ l* Q! [' C# E1 t4 A# j$ k. m前面所讲到的每个cookie stuffing方法,不管是哪个,都会被联盟发现从而封掉你的账号.不信的话你可以多试试看,除非你发现了高手成功的方法.
( r1 i$ |+ m0 f$ r那么,联盟是怎样抓住你使用了cookie stuffing的呢?2 R- e7 f. x& @( k* v$ y
首先,image stuffing,包括和它相结合的.htaccess stuffing,被证明是无法改变referer的.: [& e4 R# ^. L/ ]1 L$ }9 ]. s7 Z
后面我会讲到如何改变iframes和弹出式窗口的referer.
8 |& f- u, t d0 o其次,第二个察觉cookie stuffing的方法是blank referer,这个方法是合法的,但联盟会告诉你不行,或不给你一个明确的答复.
; ]5 `) d2 G3 f: ]# c9 v如果你用了blank referer,你认为该怎样解释?这里有2个选择:
6 J% Z+ }/ w' E% F+ n) ]1:你偷偷摸摸地在做某种事情,也就是blackhat
( ?! s: Z3 R0 V( B" P: K2:你隐藏了流量来源.
' t; h; i4 _# w2 m1 z- t6 m那么,你会用哪个选择来回答联盟呢?1,还是2?, l& {) o" t# p: I+ `
我直接说吧,永远也不要说你在做blackhat的事情,只说你的流量来源是个机密.
* Y. |8 x- x; v8 V然后你可能会收到电话或电子邮件,问你空白referer的来源,因此你事先要做好准备.
8 n, \) G' i( [6 \8 ~第三个方法是他们用转化率来破解你是否用了cookie stuffers.0 V5 P1 n; e4 P& n# m- N0 E9 }
什么是转化率?比方说,被你植入cookie的访问者都是潜在的消费者,如果他们没有消费或注册,或很少很少,你的转化率会显示很低.原因是你那些流量都是随机的乱七八糟的,不是目标流量,并没有真的点击了你的链接来到商家网站.
8 g, D9 x" ]5 H9 y$ B在大多数情况下,联盟不会封掉你的账号,他们仅委婉地告诉你: 你不能再推广那个任务,也许你会发现推广别的任务比较好.
- O: W( {, |" b! ^2 D7 q& T' D# V第四个方法是联盟用CTR数据来发现你在emu.事实上,图片是不可能有100%的点击率的,这是affiliates界的尺度,所以要注意了.
4 C7 D; }- Z; N0 m+ j' W8 d最后,最坏的情况是,联盟从你收入的情况来判断你是否emu.
3 \) B8 L% x6 V1 f) ]怎么判断的呢?联盟用某个一样的比例来衡量affiliates的收入.' Q1 ?2 U9 k7 n. T( o( K
举个例子,假如一万个会员平均月收入是100美元,并有3个人超过了500美元一个月.那么,你会被列入那个人里面,被联盟重点照顾.
1 f" p% I) E- C5 R t; H联盟不放过每个细节,对你仔细分析哪些是你做对的,哪些是做错的.这就是前面我提到过的,这种时候联盟会来调查电话问你空白流量的来源.3 f+ U" L4 } }1 v v C+ e
好了,现在我们已知道了联盟是怎样检查我们的,下一步我将讲解如何应对.; Z9 Z6 E2 ^, ~2 m6 G8 i" }0 I
在(四)里,我们大体已知道了联盟是怎样检查我们的,那么,现在该如何去应对它呢?以下内容是比较深的./ @ t- [1 m" s
首先,必须接受这样的事实,在image stuffing里改变referer是不可能的,因此,除非你能承担和把风险降低到最低点,否则不要在网站或论坛搞image stuff.
' |6 Y" X! U. @; B, V第二,学会如何适当地使用刷新代码.把iframe和刷新2者结合,referer信息将是空白的.
9 L5 B- [6 }' ?! x" e, j+ e现在不是所有的浏览器都支持上面所说的第二点,因此我们得把它过滤掉.我们做成2个PHP跳转页面,先是第一个刷新页面到达第二个页面,第二个页面自动检查referer信息是否是空白.如果是,那么这个浏览器可以使用.然后我们就可以第二次刷新来到affiliate推广页面.
0 j) ^ N% ], ] \, j联盟将看到你的来了来源都是空白的.( m6 b( x) y! u) o k
关于这个2次刷新脚本,不懂的话读者可以自己找人写个.# e- @/ q, T+ ?1 p! o: ~6 n
嗯,有的联盟已规定流量来源不可以是空白的,自然就不能用以上方法.
: _( s' |- X8 P5 R) }) m第三9 Y' u4 y- v* B
这个方法已用得很广泛了.如果访问者是通过搜索引擎来到你的网站,那么无疑,这时stuffing是相当安全的,联盟对此情况必定无话可说的.
9 Q) G+ y" X+ y$ h8 H那么我们可以这么做,让搜索引擎收录,比如雅虎的目录;让分类信息站收录,比如craigslist;再比如加入到ebay. 这些都是可以做到的几种不同的方法.# }5 j( S, o0 b4 e6 ~0 U! U! |+ @
我们可以用一个htaccess文件转到指定的affiliate链接的来源.
* G, k, h$ h* l, j& W: x或者我们可以写一个来源到数据库里,然后让被称为index.php的页面执行.我们可以告诉我们的PHP文件,对写好的某段代码做出决定,即使是来自某个站点的来源也可以改变.
8 L X1 ^3 \3 r& C" ~if(substr((trim($_SERVER['HTTP_REFERER'])),0,23)==”http://www.google.com/”)
9 X8 N/ L) X0 K* b A{( L' E# n6 a) w, U# B# [8 c
echo “<img src=\”http://www.advertcn.com/affiliatelink” height=\”1\” width=\”1\” alt=\”\”>”;. s8 V4 }, v0 n w3 v7 F) ^0 m9 F
}
8 R/ Q) ?2 [5 L+ D现在我们要抛弃掉image stuff,使用加上刷新代码的iframe,或flash文件,用于植入特定的来源对象,没有任何限制.
8 S7 A: a& a7 B) {+ l( q) u; t: {这个程序能很好的平衡CTR和对流量来源的检验,还能避免你的AM被植入cookies.
2 q8 m+ Q& V) a% ]( B不过,需要懂些PHP程序方面的知识才行.如果没这个能力,可以考虑去威客平台找外包,在国外有Freelance programmers接这种活.国内的我觉得就别找了吧., B6 _2 U+ D8 T6 j9 R0 E
第四, u5 d- y7 m9 K" `% Y! n
这是另一个不会引起别人警觉的在论坛植入cookies的方法,可以设置一个比例,让访问者随机被植入cookies. 比如说设置5%,那么,100个访问者里有5人会被植入cookies. 这个方法工作原理是怎么样的呢? 它有个名称叫动态.htaccess.它包含了2个图片文件和1个.htaccess文件.
* X4 d2 ^; C/ o当显示图片时,会适时地运行一PHP程序.
: y, m8 X' N) f7 u5 Z现在我讲解一下这2个图片.
, s- y3 m* q7 g2 \5 O第一个图片其实是假的,每次被访问会编辑.htaccess文件.我们设置一定的比例多少次图片1被图片2″覆盖”,比如5%.
# ~( f% |; q, x: M$ i( A# S下面的代码是5%的时间里时htaccess的写法:" y/ i" j. [: b$ ?5 ^
RewriteEngine on
' i6 o, v$ @5 a3 t/ o* TRewriteRule signature.jpg signature.php [L,R=301]
, `6 i( r* @0 J3 |- n) URewriteRule affiliatetracking_pixel.gif http://www.advertcn.com/affiliatelink [L,R=301]+ q6 Q, H1 L0 f5 N
下面的代码是95%的时间里时,htaccess的写法:- H3 i* C1 R1 e; P0 `* e Y
RewriteEngine on
3 J: H% I' P: [0 V) }! ^RewriteRule signature.jpg signature.php [L,R=301]9 x8 k. p, d) a5 v
RewriteRule affiliatetracking_pixel.gif tp.gif [L,R=301]
: T* Y' ?8 Y1 q' X5 o+ y就是说,95%的时候,在论坛看到的是正常的签名,5%的时候看到的是×.万一如果有人怀疑这个×,那么,他刷新一下帖子的页面后,看到的又是一个真实的图片.
% b4 q) K2 k8 s% ~这是因为刷新后htaccess又被重写了.
B: [1 F& {1 o, J) V8 H+ ?使用这个方法事先要注意是否容许在论坛推广,以及签名除了图片还可以使用文本.1 @& G& v3 w# j1 j0 @; v4 J6 f! _
第五
; x2 a! c9 U3 U( N& s前面我们已知道,那个红叉是个麻烦问题.
+ `3 a( k$ S0 {$ {7 C6 l; {6 m但如果我们是在一般非技术论坛搞cookie植入的话,仅针对火狐浏览器用户植入就可,因为火狐浏览器不会显示红叉,这点它跟IE6/7不一样的." W' N/ }) g, ^1 M1 j
这个方法的代码如下,由上往下读:& d, Q, M) M* i( }) f& @
Options +FollowSymlinks' h' b5 h7 K2 y: c' ?
RewriteEngine on: p$ w, V: l7 p& F L) q, U0 j5 ?
RewriteCond %{HTTP_REFERER} !^$1 Z9 M( r. T n
RewriteRule signature.jpg special.jpg [P,L] ^Mozilla/5.0.*$ [NC]4 S/ N2 p8 d1 J# c' u
RewriteRule signature.jpg http://www.advertcn.com/affiliatelink[R,L]0 r/ w2 i: N0 n4 f" r
RewriteCond %{HTTP_REFERER} ^$* q0 Q: n! s: Q! F
RewriteRule signature.jpg special.jpg [P,L]/ [ r- M2 p3 N7 B0 a0 J
RewriteCond %{HTTP_USER_AGENT}0 P' @! a, V. I
简单的解读是,如果是火狐浏览器用户,就发送你的推广链接给他们,植入cookie,他们看不到红叉.7 j5 X h+ ^0 |/ X
其余IE用户则看到的是真实的图片,不被植入cookie.! r+ p0 M- \9 Z* F2 `3 F
这个方法相对来说简便易行.! ]* X1 i) \& H( M1 i
结语4 V" M1 [1 g5 _: k! ?& S* Y& N
关于cookie stuffing的秘密,到此算是讲完了,希望各位有所收获.此外,既然是秘密,如今公开了,就说明是有一定时效性的,故运用时需要自己加以改进.
9 k# t2 g7 d! t( L% p最后,谢谢大家阅读,我期待着有更多的积极性去写其它的内容. |