前言
3 Q, n% `0 x2 }7 e5 R. u去年我说过要写个关于cookie stuffing(简称CS)的资料.开写了大部分后, 于去年9月份时中断. E5 ~0 H [) O% H1 i8 E: |: h0 ?
后来断续又写了一点,还没写完.
0 ]9 s8 k: `- p. [0 b w6 W现在决定暂时不用PDF形式发布,而是用贴子分几期在5月份发完.
5 b! }& j9 ?4 q7 Y/ U整个资料内容不涉及实战,以介绍方法为主,里面的代码来自老外,和本人无关,请注意了.
+ f" p7 h4 r* S8 ?! @OK,首先我还是重复下什么是cookie stuffing的概念
. f6 j+ X1 t- f z/ \. ocookies是通过html中header(头部信息)传递的,除非浏览器的做了一定安全设置,否则是不会忽略这个信息的.
+ c$ p0 u, A$ d& F$ j# J既然cookies通过头部信息传送,那么,一个网页可以不必通过一个header传递,通过图片等方式也可以实现.
: n; e* W" r& X) |! S" U当一个浏览者向服务器发送一个图像请求时,在返回的页面之中,一个header已经被包括了.浏览器获得了header,就不需要管那些文章信息,一个cookies就是这样植入的.
4 \- m, P L) s% Xcookie stuffing的存在是因为广告联盟用cookie来跟踪业绩.用最简单的话就是说,广告联盟给你一个链接,当他人点击了链接并购买了产品,你就获得了佣金.
1 i) k( H/ u7 a- n5 d现在你知道了,就是要想办法让人多点击,你就可能得到更多提成.比如把广告图片放在你站上,并尽量使图片和网站融为一体.但可怜的是这样做效果很差,几乎没人点你的广告图片.% r7 {! N! w7 e9 B% ~' p) e
所以,怎样强制他人点击链接呢?从而cookie stuffing就这样被发明出来了.它的最终目标就是把affiliate cookies加入浏览者的电脑中,以投机取巧获取利益.3 {6 ~' c% X. C% Y8 ?" C$ w
看起来cookie stuffing是一种容易赚钱的方法.当然,广告联盟不是傻瓜,他们有很多办法能抓到你,这在以后会讲到的.
0 z: n* m: k8 L/ |* Y基本方法
, U2 h! }$ k- [1 j+ x. g1. Image Stuffing+ H9 w, w3 J5 U
cookie stuffing一般在开头会先讲这个Image Stuffing的,代码很简单,这里是个例子:" O$ j5 U6 P- J
<img src=”http://www.advertcn.com/affiliatelink”>1 F; r6 n5 x/ T6 a9 S) T
在大多数浏览器,它表现为一个大的红叉,看上去像是服务器出了毛病一样.9 g/ C$ O3 n6 M9 m& L1 }' J
在国外大多数论坛有不少会员是专家,如果你在论坛用这个方法,会很容易被他们识破的./ B6 D. ^. f( Y* T7 e8 L2 S9 S, P
所以, 在实施一些方法前, 还有很多的东西要学.. a; R' [& S. ]
回过来继续说Image Stuffing.为了不让用户发现,你不得不设置图片大小为1个像素,代码如下:
3 b& D6 d( R5 L<img src=”http://www.advertcn.com/affiliatelink” height=1 width=1>
5 m9 Q: G9 X$ h+ L. r# W但这样还是会显示一个红叉,所以,再给它加上个alt标签,用来替换你想要的文本文字.
$ \" x4 N# w/ O- |! j( timage tag stuff:
1 h- _% c2 U+ W" D8 W! q" x* W- J* b<img src=”http://www.advertcn.com/affiliatelink” height=”1″ width=”1″ alt=” “>& Z m: T, K p9 u" L N
然后,当它和其它方法结合在一起后,就成为cookie stuffing牢固的基石了,后面会继续讲到的.
' d6 V; l: o8 s2. Iframe Stuffing
* B! }* N2 O/ p+ n! YIframe对初学者来说相当容易理解(不知道Iframe为何物的,请自己查资料吧),以下是Iframe Stuffing的代码例子.. R4 T, _, r: C1 ]% b) b B
<iframe src=”http://www.advertcn.com/affiliatelink” height=”1″ width=”1″>; t/ ?6 Z* Y7 F0 ~; I
访问者来到你的网站后,就不知不觉的已打开窗口访问了商家的网站,也就是点击了http://www.advertcn.com/affiliatelink,因为这个Iframe的大小是1个像素,所以访问者毫无知觉.如果他们购买了东西,提成就是你的了.8 a$ d; ?& H1 H1 }0 |
Iframe Stuffing也很容易让你马上被banned.当然,也有办法隐蔽它,在后面我们会讨论到.
- }. ?' T9 d/ k. i" M$ Y' \3. Javascript Stuffing
& R1 \) d1 i# r3 Z很久以前-从互联网早期,到现在,有个东西叫弹窗的,可以说是最原始的强制植入cookie的方式.确切的说,属于不完全意义上的cookie stuffing.+ `) b- y6 U; m! a9 b B
效果是一样的,只是很令访问者反感.所以大多数浏览器有了可以锁定弹出式窗口的功能.' N) V- t2 L) o5 g% Y9 `/ B
现在,我们来到了有点复杂的cookie stuffing的章节-Javascript Stuffing,这个需要一点程序知识,毕竟Javascript是一种脚本语言.因为较难明白,我们就跳过程序知识这部分.; Q; k% O7 w9 F) o9 \$ M d
下面举个代码例子,并简单地解释一下它是如何工作的:$ t7 W7 V. s6 a) X
<script language=”JavaScript”>6 a5 v, n: H. y8 }
<!– window.focus();
7 h/ O" D) n0 DsetTimeout(“window.focus()”,900);
: J% p% D% d2 s: E2 k7 T) J//–>" P( U6 D u6 \( |2 Z* M9 d1 P
</script>3 g. E7 `* o h( v/ Z# B8 R
<script language=”javascript”>
1 `" o8 \% O6 T% H/ }<!–2 ]( O2 o4 E, u: f8 d$ z
w=window.open(‘http://www.advertcn.com/affiliatelink’,'affiliate_description’);w.blur();" r7 B* f1 L* | Y/ R
//–>
# Y( ^0 [8 D4 e8 `4 a3 Y</script>3 J4 ]9 A5 ?$ p
这个独特的方法是过了设定时间后,打开弹出式窗口(商家的网站,或者是你的推广链接),并移离目前主窗口的视觉中心,放置于主窗口的后面,对访问者来说,就不那么烦人侵扰了.
$ m, q4 t9 H3 I6 @由于访问者其实已用你的链接打开了商家的网站,所以他们被植入了cookie.
* r8 B$ y8 i8 W' m+ E8 f如果你懂得javascript,懂得弹出式窗口,够精通javascript编程的话,你应该有能力值得花些时间去改进发展Javascript Stuffing.- ?! o8 w4 v+ Q6 M
但大多数时候,Javascript Stuffing已进入死胡同,发展余地已不大.
5 ?+ y1 [" g/ b: I3 C* L$ r C后记:: r; x5 g' \" p6 z3 g5 u L
数年前,我在CB培训的群里,也给过学员类似的代码,不一样的在于,我给的是隐形弹窗,也就是说肉眼是看不见这个弹窗的.
' Y$ X1 j- _. C, v! ?; q L% s7 }1 n代码作者原本是出售这个程序的,后来05年取消了,改为到他网站上在线生成代码.现在他的网站已指向了别的地方,所以别问我要这个东西啊.# u7 X) X4 B8 M, |- X, j1 I% w* l
4. .htaccess stuffing 通常,即使是会点网站设计的人,也不一定知道.htaccess是什么., e m, L! M7 r% H( Y% |2 @$ C- N
.htaccess在大多数服务器是个隐藏文件,有时被默认是没有的,所以实际上需要我们建立一个.
1 V' D' S- j% `8 p.htaccess这个文件告诉服务器当一个特别条件相适应时,应该去干什么.
- K' Z9 O$ H' p* Z" z好了现在我们至少知道了什么是.htaccess文件,我们就开始复习Image Stuffing代码吧.
6 j! S. W$ H! g7 [ b) V P比如说你在论坛的签名.
) g5 K. j7 q2 [<img src=” ”>
" @! W6 b( t2 r O然后我们把以下htaccess文件传到空间里$ z6 b: t* c* | S: }" U4 _" S/ T$ n
RewriteEngine on
( [ b5 R, u; y8 O: C! Z2 gRewriteRule signature.jpg http://www.advertcn.com/affiliatelink/ [L,R=301]+ I7 C# c" \) U) Y4 D: d
这个htaccess是说,访问者在读取你的论坛签名里的图片时,会被转向到你的affiliate链接,这样他们就被植入了cookie.
, }# ^# Z$ y! {1 z F那么,你的图片在浏览器里真正看上去是这样的:
( R3 e; o S5 @! U( m<img src=”http://www.advertcn.com/affiliatelink”>
( x. ]% b; `; |* \还记得前面讲到过的Image Stuffing吗?现在访问者看到的链接就是一个真实的图片了.
, |" j0 y! y$ P, `5 _5. Flash Stuffing* s! ]; O; ~# j1 V
关于Flash Stuffing这一部分,还可以参见一本书,CookieStuffingGuide,广告中国有下载,地址:8 D& K) ^6 p; x+ w- @
http://advertcn.com/viewthread.php?tid=72234&extra=page%3D1! {* W) d, U' R4 ]! G9 c
相信大家都玩过Flash游戏吧,可以使用键盘或鼠标操纵动画里的部分动作,交互性很强,这便是ActionScript的厉害之处,它与JavaScript结构类似,但是它的编程要容易得多.4 k, E, K( S& c8 b( ]0 h- }3 h- C
用ActionScript创作出来的动画具有很强的交互性,Flash程序脚本语言就是ActionScript,译作行动脚本.最近版本是3.0.9 v7 Q6 y; ?2 E! p& q; T D
讲述Flash Stuffing,专业术语较多,我看资料时头也很大.所以,一些复杂的理论我跳过去省略掉.
9 m1 a, K3 M- v9 rFlash几乎无可能对所发送的referer作假,所幸它有个可以利用的漏洞,那就是sendToURL().7 k: T6 {& J) w3 V
ActionScript3.0里有个叫sendToURL()的功能,这个功能的设计是,发送信息到一个网站,但不用等待响应.
) L( n# P; V% y2 W/ `! `具体来说,sendToURL()发送一个URL到服务器确认,但不理睬任何响应.也就是说,它用访问者的浏览器(你的cookie stuffing”受害者”)提交一个请求到一个网站,但浏览器被假设为不理睬任何响应.6 D' E6 \8 m3 A9 ]
但头部信息是不会被拒绝的,cookie能穿越sendToURL()未触及的功能通过去,cookie的植入自然也就无疑问.
- a5 n3 e) @4 a/ Z如果你会PHP的话,你可以指定哪个浏览器不发送空白的referers,以及阻止来自被发送到sendToURL()的信息.你还可以设定你的PHP文件指令,优化你想要的CTR比率,以保持稳定的收入.
8 v% r4 X* \. _! s9 Y此类程序有几种,有的已停止出售.最好是找人写一个针对特定联盟的.当然前提是联盟默许cookie stuffing.
) _7 j, ]- L$ |+ b9 l8 |+ J前面所讲到的每个cookie stuffing方法,不管是哪个,都会被联盟发现从而封掉你的账号.不信的话你可以多试试看,除非你发现了高手成功的方法.. Q4 s+ w7 Z* ]8 \# N/ J
那么,联盟是怎样抓住你使用了cookie stuffing的呢?+ l7 E$ [( T5 T' K! \2 x
首先,image stuffing,包括和它相结合的.htaccess stuffing,被证明是无法改变referer的.
, E5 x' j2 @8 I# Y, `后面我会讲到如何改变iframes和弹出式窗口的referer.
3 e, q. l, w; A" j其次,第二个察觉cookie stuffing的方法是blank referer,这个方法是合法的,但联盟会告诉你不行,或不给你一个明确的答复.
) m* L1 Q: `0 J; z- h! v$ u2 J L如果你用了blank referer,你认为该怎样解释?这里有2个选择:, `- _8 J; m. {: v1 @
1:你偷偷摸摸地在做某种事情,也就是blackhat
% ~2 c. w& u7 l6 r# ^5 e2:你隐藏了流量来源.4 u0 q6 L9 @& ~; z# _4 r
那么,你会用哪个选择来回答联盟呢?1,还是2? k/ G4 Q/ R4 L# ~0 C" a
我直接说吧,永远也不要说你在做blackhat的事情,只说你的流量来源是个机密.
, @- N1 e+ [0 \4 ^# C然后你可能会收到电话或电子邮件,问你空白referer的来源,因此你事先要做好准备.
; j& v2 x) ^5 Q* L第三个方法是他们用转化率来破解你是否用了cookie stuffers.9 e3 z5 o1 R5 e2 G
什么是转化率?比方说,被你植入cookie的访问者都是潜在的消费者,如果他们没有消费或注册,或很少很少,你的转化率会显示很低.原因是你那些流量都是随机的乱七八糟的,不是目标流量,并没有真的点击了你的链接来到商家网站.
. N* O7 a, ]# z在大多数情况下,联盟不会封掉你的账号,他们仅委婉地告诉你: 你不能再推广那个任务,也许你会发现推广别的任务比较好.% G& O5 B: c# L) t" L$ M4 }$ G
第四个方法是联盟用CTR数据来发现你在emu.事实上,图片是不可能有100%的点击率的,这是affiliates界的尺度,所以要注意了.$ z( |5 R( h- K
最后,最坏的情况是,联盟从你收入的情况来判断你是否emu.
* _( d6 G' x. w8 a怎么判断的呢?联盟用某个一样的比例来衡量affiliates的收入.
% v6 ~, A1 ]+ K& W4 O5 h! m' c举个例子,假如一万个会员平均月收入是100美元,并有3个人超过了500美元一个月.那么,你会被列入那个人里面,被联盟重点照顾.
/ B* X8 S& [8 K, u: e联盟不放过每个细节,对你仔细分析哪些是你做对的,哪些是做错的.这就是前面我提到过的,这种时候联盟会来调查电话问你空白流量的来源.
* T V, [1 S4 J3 ^. w好了,现在我们已知道了联盟是怎样检查我们的,下一步我将讲解如何应对.
% Z& R7 B X. {3 Z7 e在(四)里,我们大体已知道了联盟是怎样检查我们的,那么,现在该如何去应对它呢?以下内容是比较深的.3 g: c+ F: f# q' N* @" S
首先,必须接受这样的事实,在image stuffing里改变referer是不可能的,因此,除非你能承担和把风险降低到最低点,否则不要在网站或论坛搞image stuff., ~7 k5 k, f$ ]$ U
第二,学会如何适当地使用刷新代码.把iframe和刷新2者结合,referer信息将是空白的. y" ?9 s# O" w$ S4 } ?4 {$ V8 q1 T
现在不是所有的浏览器都支持上面所说的第二点,因此我们得把它过滤掉.我们做成2个PHP跳转页面,先是第一个刷新页面到达第二个页面,第二个页面自动检查referer信息是否是空白.如果是,那么这个浏览器可以使用.然后我们就可以第二次刷新来到affiliate推广页面.' d: ]( E7 a9 _1 c& s% a
联盟将看到你的来了来源都是空白的.5 v. ?, l( H8 i3 e1 d+ h
关于这个2次刷新脚本,不懂的话读者可以自己找人写个./ [. {$ ]0 Y/ G) o# X" s2 X
嗯,有的联盟已规定流量来源不可以是空白的,自然就不能用以上方法.
0 S5 r8 K# n5 W6 s( A第三
* @1 d" R6 M( S这个方法已用得很广泛了.如果访问者是通过搜索引擎来到你的网站,那么无疑,这时stuffing是相当安全的,联盟对此情况必定无话可说的.# o0 u) t/ h6 R- y4 W& C, z1 S
那么我们可以这么做,让搜索引擎收录,比如雅虎的目录;让分类信息站收录,比如craigslist;再比如加入到ebay. 这些都是可以做到的几种不同的方法.' g3 a' w' m: C) {" c
我们可以用一个htaccess文件转到指定的affiliate链接的来源. {/ `) [! e3 T* A$ E
或者我们可以写一个来源到数据库里,然后让被称为index.php的页面执行.我们可以告诉我们的PHP文件,对写好的某段代码做出决定,即使是来自某个站点的来源也可以改变.& G) f) ^: p. b" p
if(substr((trim($_SERVER['HTTP_REFERER'])),0,23)==”http://www.google.com/”)2 w% Q: [: ^/ I o
{
* x4 H8 e/ L3 |# X7 F% ?( v# r secho “<img src=\”http://www.advertcn.com/affiliatelink” height=\”1\” width=\”1\” alt=\”\”>”;
2 t) Z' {) y* }, V7 f- [6 L/ @} t+ j) Q4 z! x0 ~7 y
现在我们要抛弃掉image stuff,使用加上刷新代码的iframe,或flash文件,用于植入特定的来源对象,没有任何限制.& e, g* N; U' {' |5 L; j4 Z
这个程序能很好的平衡CTR和对流量来源的检验,还能避免你的AM被植入cookies.2 L( N6 ]% A: y& s: H
不过,需要懂些PHP程序方面的知识才行.如果没这个能力,可以考虑去威客平台找外包,在国外有Freelance programmers接这种活.国内的我觉得就别找了吧.# |0 A; i" X7 v9 W8 o
第四+ `2 J: b1 d6 o) K, |) [
这是另一个不会引起别人警觉的在论坛植入cookies的方法,可以设置一个比例,让访问者随机被植入cookies. 比如说设置5%,那么,100个访问者里有5人会被植入cookies. 这个方法工作原理是怎么样的呢? 它有个名称叫动态.htaccess.它包含了2个图片文件和1个.htaccess文件.
]: K# _ ?: S. _( Q6 a当显示图片时,会适时地运行一PHP程序.2 l! F! O' h- {3 {
现在我讲解一下这2个图片.1 m% @ ^( _3 a1 y- A: \# E/ i# A
第一个图片其实是假的,每次被访问会编辑.htaccess文件.我们设置一定的比例多少次图片1被图片2″覆盖”,比如5%.$ J k, l: I$ o# I+ B
下面的代码是5%的时间里时htaccess的写法:
4 Y5 _& \" I4 ~+ |$ Q3 jRewriteEngine on. m4 E+ t6 |* ?1 G
RewriteRule signature.jpg signature.php [L,R=301]
7 g0 E) _" m: w& R0 MRewriteRule affiliatetracking_pixel.gif http://www.advertcn.com/affiliatelink [L,R=301] m8 }% u" A! q" i
下面的代码是95%的时间里时,htaccess的写法:
" H1 ^1 ?# O/ ~2 v. RRewriteEngine on
! o, }) z J0 ^! i! ?1 vRewriteRule signature.jpg signature.php [L,R=301], N+ P, C6 F! F% r0 s
RewriteRule affiliatetracking_pixel.gif tp.gif [L,R=301]
1 {6 L g$ ^, D- f' G, a就是说,95%的时候,在论坛看到的是正常的签名,5%的时候看到的是×.万一如果有人怀疑这个×,那么,他刷新一下帖子的页面后,看到的又是一个真实的图片.: [! U4 }* K* E! c4 X0 {
这是因为刷新后htaccess又被重写了.
3 Q2 q( A- S/ n使用这个方法事先要注意是否容许在论坛推广,以及签名除了图片还可以使用文本.
* S3 s0 g+ n+ r$ @' a, R第五' X! G) w; N0 d$ Z7 Q( w5 l) g* K! Q
前面我们已知道,那个红叉是个麻烦问题.3 |7 N( |. o1 b" G+ ]% x7 y7 I# y4 d
但如果我们是在一般非技术论坛搞cookie植入的话,仅针对火狐浏览器用户植入就可,因为火狐浏览器不会显示红叉,这点它跟IE6/7不一样的.+ z& e' D! D, J" V; w1 {6 Q
这个方法的代码如下,由上往下读:
3 }7 m" B( r9 Y, Y+ }2 BOptions +FollowSymlinks2 O; J& [/ U7 ?0 p" ]
RewriteEngine on
" |) Q2 F y4 m6 W, s4 MRewriteCond %{HTTP_REFERER} !^$) W- ^0 Z# A$ Y/ p- y. t
RewriteRule signature.jpg special.jpg [P,L] ^Mozilla/5.0.*$ [NC]' x/ \- R3 S& N. H! j! G1 Z
RewriteRule signature.jpg http://www.advertcn.com/affiliatelink[R,L]
1 I- M3 {" I; n! k$ b8 ?' fRewriteCond %{HTTP_REFERER} ^$, U2 B' s* J; d* R+ p
RewriteRule signature.jpg special.jpg [P,L], q" f" h$ O7 ^1 A2 Y5 H# e) i% e
RewriteCond %{HTTP_USER_AGENT}2 O5 m( D- o/ {1 |5 v" s* ?: b7 ]$ P
简单的解读是,如果是火狐浏览器用户,就发送你的推广链接给他们,植入cookie,他们看不到红叉.
z. Z1 q% z' z5 _其余IE用户则看到的是真实的图片,不被植入cookie.
+ G. U$ h9 Z0 x- _这个方法相对来说简便易行.
; q+ n7 b; q# B' _ ^结语9 x% t0 K( J& t! L6 q
关于cookie stuffing的秘密,到此算是讲完了,希望各位有所收获.此外,既然是秘密,如今公开了,就说明是有一定时效性的,故运用时需要自己加以改进.
d8 N6 {" v6 E& Q. T+ j2 Z8 L( R最后,谢谢大家阅读,我期待着有更多的积极性去写其它的内容. |