标题:跟着ArthurXF学Alexa作弊10——google-analytics cookies原理分析 出处:BIWEB开源PHP WMS系统创始人ArthurXF肖飞的blog 时间:Sat, 17 Nov 2007 14:36:40 +0000 作者:ArthurXF 地址:http://www.bizeway.net/read.php/261.htm 内容:   因为最近alexa加入了google-analytics的cookies在里面,所以为了万无一失,我们必须模拟google-analytics的cookies,下面是我转载过来对google-analytics的cookies分析,希望对大家有些帮助。 引用 # 发统计包 -------------------------------------------------------------------------------- GET http://www.google-analytics.com/__utm.gif?utmwv=1&utmn=1261523910&utmcs=gb2312&utmsr=1400x1050&utmsc=32-bit&utmul=en-us&utmje=1&utmfl=-&utmhn=www.mydll.com&utmr=-&utmp=/gg.htm&utmac=UA-2789145-1&utmcc=__utma%3D251296922.1430927915.1192194210.1192194210.1192194210.1%3B%2B__utmb%3D251296922%3B%2B__utmc%3D251296922%3B%2B__utmz%3D251296922.1192194210.1.1.utmccn%3D(direct)%7Cutmcsr%3D(direct)%7Cutmcmd%3D(none)%3B%2B HTTP/1.1 Accept: */* Referer: http://www.mydll.com/gg.htm Accept-Language: zh-cn UA-CPU: x86 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) Connection: Keep-Alive Host: www.google-analytics.com Pragma: no-cache HTTP/1.1 200 OK Pragma: no-cache Cache-Control: private, no-cache, no-cache="Set-Cookie", proxy-revalidate Expires: Fri, 04 Aug 1978 12:00:00 GMT Content-Type: image/gif Server: ucfe Content-Length: 35 Date: Fri, 12 Oct 2007 13:04:04 GMT Via: 1.1 HttpSpy # 发出统计的请求详细分析 -------------------------------------------------------------------------------- http://www.google-analytics.com/__utm.gif? utmwv=1&     # 常量 1 utmn=1261523910& # Math.round(Math.random()*2147483647); utmcs=gb2312&     # charset utmsr=1400x1050& # screen utmsc=32-bit&     # screen.colorDepth utmul=en-us&     # navigator.language.toLowerCase(); utmje=1&     # navigator.javaEnabled() ? 1 : 0; utmfl=-&     # _uFlash utmhn=www.mydll.com& # JsUrlEncode(location.hostname) utmr=-&      # document.referrer utmp=/gg.htm&     # location.pathname+location.search; 或者优先是 用户输入的 page 页面 utmac=UA-2789145-1& # 站点ID,用户输入的 _uacct = "UA-2789145-1"; utmcc=__utma%3D251296922.1430927915.1192194210.1192194210.1192194210.1%3B%2B__utmb%3D251296922%3B%2B__utmc%3D251296922%3B%2B__utmz%3D251296922.1192194210.1.1.utmccn%3D(direct)%7Cutmcsr%3D(direct)%7Cutmcmd%3D(none)%3B%2B utmcc=__utma=251296922.1430927915.1192194210.1192194210.1192194210.1;+__utmb=251296922;+__utmc=251296922;+__utmz=251296922.1192194210.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none);+ utmcc= __utma=251296922.1430927915.1192194210.1192194210.1192194210.1;+ __utmb=251296922;+ __utmc=251296922;+ __utmz=251296922.1192194210.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none);+ 其中的 251296922 是根据当前页面的根域名计算出来的 HASH 值,例如本次请求是用 mydll.com 计算出来的值 251296922 __utma 的第二个数值 1430927915 是随机数字,用函数 Math.round(Math.random()*2147483647) 生成出来的 __utma 的第三、四、五个数值 1192194210 是随机数字,是用函数 _ust=Math.round((new Date()).getTime()/1000); 计算出来的 __utma 的第六个数值 1 是固定的常量 __utmz 的第一个数是域名的 HASH 值 __utmz 的第二个数值 1192194210 是随机数字,是用函数 _ust=Math.round((new Date()).getTime()/1000); 计算出来的 __utmz 的第三个数值 1 其实就是 __utma 的第六个固定常量 __utmz 的第四个数值 1 在第一次请求的时候是 1,我们就暂时不考虑第二次的请求 __utmz 的最后一个参数 utmccn=(direct)|utmcsr=(direct)|utmcmd=(none) 是表示来源等信息,默认就是这个 当链接是从其他网站点入时,其 __utmz 参数如下: __utmz=251296922.1192220231.1.1.utmccn=(referral)|utmcsr=yx8.com|utmcct=/temp/togg.html|utmcmd=referral;+     utmccn - 的值表示有来源     utmcsr - 表示来源的跟域名     utmcct - 表示来源页面的 PATH     utmcmd - 表示一个命令好像,这里设置了 referral,可能是为了配合签名的 引用 # 外部链接导入包 -------------------------------------------------------------------------------- GET http://www.google-analytics.com/__utm.gif?utmwv=1&utmn=1389663121&utmcs=gb2312&utmsr=1400x1050&utmsc=32-bit&utmul=en-us&utmje=1&utmfl=-&utmcn=1&utmhn=www.mydll.com&utmr=http://www.yx8.com/temp/togg.html&utmp=/gg.htm&utmac=UA-2789145-1&utmcc=__utma%3D251296922.1389663121.1192220231.1192220231.1192220231.1%3B%2B__utmb%3D251296922%3B%2B__utmc%3D251296922%3B%2B__utmz%3D251296922.1192220231.1.1.utmccn%3D(referral)%7Cutmcsr%3Dyx8.com%7Cutmcct%3D%2Ftemp%2Ftogg.html%7Cutmcmd%3Dreferral%3B%2B HTTP/1.1 Accept: */* Referer: http://www.mydll.com/gg.htm Accept-Language: zh-cn UA-CPU: x86 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) Connection: Keep-Alive Host: www.google-analytics.com HTTP/1.1 200 OK Pragma: no-cache Cache-Control: private, no-cache, no-cache="Set-Cookie", proxy-revalidate Expires: Fri, 04 Aug 1978 12:00:00 GMT Content-Type: image/gif Server: ucfe Content-Length: 35 Date: Fri, 12 Oct 2007 20:17:14 GMT Via: 1.1 HttpSpy # 参数分析 -------------------------------------------------------------------------------- http://www.google-analytics.com/__utm.gif? utmwv=1& utmn=1389663121& utmcs=gb2312& utmsr=1400x1050& utmsc=32-bit& utmul=en-us& utmje=1& utmfl=-& utmcn=1& utmhn=www.mydll.com& utmr=http://www.yx8.com/temp/togg.html& utmp=/gg.htm& utmac=UA-2789145-1& utmcc=__utma%3D251296922.1389663121.1192220231.1192220231.1192220231.1%3B%2B__utmb%3D251296922%3B%2B__utmc%3D251296922%3B%2B__utmz%3D251296922.1192220231.1.1.utmccn%3D(referral)%7Cutmcsr%3Dyx8.com%7Cutmcct%3D%2Ftemp%2Ftogg.html%7Cutmcmd%3Dreferral%3B%2B utmcc=__utma=251296922.1389663121.1192220231.1192220231.1192220231.1;+__utmb=251296922;+__utmc=251296922;+__utmz=251296922.1192220231.1.1.utmccn=(referral)|utmcsr=yx8.com|utmcct=/temp/togg.html|utmcmd=referral;+ utmcc= __utma=251296922.1389663121.1192220231.1192220231.1192220231.1;+ __utmb=251296922;+ __utmc=251296922;+ __utmz=251296922.1192220231.1.1.utmccn=(referral)|utmcsr=yx8.com|utmcct=/temp/togg.html|utmcmd=referral;+ 引用 # 再次刷新页面时发现 Cookie 已经设置上 -------------------------------------------------------------------------------- GET http://www.mydll.com/51la.htm HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */* Accept-Language: zh-cn UA-CPU: x86 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) Host: www.mydll.com Connection: Keep-Alive Cookie: __utma=251296922.1389663121.1192220231.1192220231.1192220231.1; __utmb=251296922; __utmc=251296922; __utmz=251296922.1192220231.1.1.utmccn=(referral)|utmcsr=yx8.com|utmcct=/temp/togg.html|utmcmd=referral 经过上面的数据整理,我们找出alexa需要的cookies: 引用 alexa里面只有__utma和__utmz,例如: __utma=115222615.1251140172.1191286648.1193849008.1195232899.14; __utmz=115222615.1191673134.10.2.utmccn=(referral)|utmcsr=info.alexa.com|utmcct=/data/details/traffic_details|utmcmd=referral; 那我们就重点分析一下如何模拟__utma和__utmz。 __utma分析如下: 引用 __utma 的第一个数值是域名的hash值; __utma 的第二个数值 1251140172 是随机数字,用函数 Math.round(Math.random()*2147483647) 生成出来的; __utma 的第三、四、五个数值 1192194210 是随机数字,是用函数 _ust=Math.round((new Date()).getTime()/1000); 计算出来的; __utma 的第六个数值 1 是固定的常量; __utmz的分析如下: 引用 __utmz 的第一个数是域名的 HASH 值 __utmz 的第二个数值 1192194210 是随机数字,是用函数 _ust=Math.round((new Date()).getTime()/1000); 计算出来的 __utmz 的第三个数值 1 其实就是 __utma 的第六个固定常量 __utmz 的第四个数值 1 在第一次请求的时候是 1,我们就暂时不考虑第二次的请求 __utmz 的最后一个参数 utmccn=(direct)|utmcsr=(direct)|utmcmd=(none) 是表示来源等信息,默认就是这个 上面的分析不一定是完全正确,如果大家还有其他的什么好建议,可以跟我联系,QQ:20911218,MSN:onenight11@hotmail.com 现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。 PHP培训招生简章 Generated by Bo-blog 2.0.3 sp1