最近在网站的百度统计看见被刷了很多一些莫名其妙的流量,而来源是从搜索引擎过来的、或者是加上某个搜索词作为URL参数,搜索词就是被人的广告词,以前百度会显示已屏蔽,而最近发现这些广告词又出现了,可能是百度屏蔽是根据特定的关键词去屏蔽的还是怎样,具体不了解了。
问题分析
被刷的流量,我们看网站日志是没有这个访问的,在网上找到的说法是这些访问信息是直接通过百度推广的接口推送数据的实现的,按照这样说法,原理应该很简单,先找到可以成功推送数据的接口,然后就是通过爬虫抓取大量的网站,然后看网站上有没有使用百度统计、或者是其他的统计代码。有的话提取到百度统计的ID。然后通过程序批量的给百度统计接口发送数据就好了。
解决方法
知道了原理,我们就好解决了,我们把百度统计的JS代码给加密了,他就提取不到这个百度统计ID数据了,当然理论上加密方式不算太复杂的话还是能破解出来了,但是这种都是通过爬虫批量化去提取的,一般是不会针对你来刷的。所以你就放心就好了。
注意点:
你要新创建一个百度统计代码,因为你旧 的ID已经被别人抓取到了。
使用加密或者其他处理过后的百度统计代码,要使用百度统计后台的代码检查功能检查,确认生效。这个是一定要的,因为有的混淆加密算法生成的有些符号可能会被过滤掉。
在线JS加密工具解决
我们直接通过网上在线的js加密工具,把百度统计代码放进去,然后加密再放回网站上使用就可以了。
这里我放两个在线工具,自己选择就行了:
统计代码拼接解决
原理是只要让网页中不出现常规形式的统计代码不会暴露ID就可以解决,所以我们处理下百度统计的代码也是一样的。
复制下面的代码,把ID改成自己的统计ID就可以了。
示例代码一 分开统计号
<script>var _hmt = _hmt || [];(function() { var hm = document.createElement("script"); hm.src="htt"+"ps://hm.ba"+"idu.com/h"+"m.js?0000000000000"+"0000000000000000000"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s);})();</script>
示例代码二 分开统计链接
<script>var _hmt = _hmt || [];(function() { var hm = document.createElement("script"); hm.src = ['htt','ps://','hm','.bai','du.','com','/h','m.js?','0000000000000','0000000000000'].join(''); var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s);})();</script>
我没看过51.la、CNZZ这些其他国内统计工具会不会被刷,如果有的话,上述的方式应该一样可以解决。