近日,在百度统计后台中广告泛滥,包括收流量、、SEO、云主机等等广告,严重影响了正常的统计分析,所以想办法解决这个问题,分享给站长们。
百度统计被刷广告的症状
如果你的百度统计被恶意刷广告的话,你会在百度统计后台里的搜索词、来源等看到各种广告,包括收流量、、SEO、云主机等等广告,例如我下面的截图,很多真实的流量被刷到看不到,而且流量也会造成统计不准,可能感觉最近几天流浪猛增,但实际真实流量并没有那么大。
百度统计被刷广告的原理
想要斩草除根,就需要知己知彼,明白他们操作的原理以后,就可以有效的遏制他们无下限的刷广告。
他们是这样做的,先写一个机器爬虫,爬取页面内容,寻找「hm.baidu.com/hm.js」如果找到了就说明你使用了百度统计,然后再取后面的参数,就得到了你的百度统计ID,然后保存到数据库,拿到你的的百度统计ID以后,就可以进行下一步,使用程序批量的给百度统计接口发送数据,也就是说这些内容他们根本不是真的去你的网站,而是直接给百度统计的接口提交了数据,对你的网站流量没有任何贡献,你只有看广告的份。
我也是被刷广告刷的很严重,是在忍无可忍,必须解决一下他们了。
百度统计被刷广告的解决办法
我们明白了他们的原理,现在就开始见招拆招,破解他们的刷广告的手段。
首先,你的旧的统计代码ID已经被他们获取到了,保存到了他们的数据库,所以建议旧的代码就放弃吧,去百度统计删除掉,再新增网站,你会获得一个新的统计代码。
然后,为了让他们的爬虫程序识别不到百度统计代码,我们需要将百度统计的URL地址做一个变换,我的方式是将原有的百度统计URL地址打散成一个一个的字符串数组,然后再拼装起来,实例如下:
百度统计给我们的代码:
- var _hmt = _hmt || [];
- (function() {
- var hm = document.createElement("script");
- hm.src = "https://hm.baidu.com/hm.js?ee1f1987ccfc9bcd61a1d220f5ae41e1";
- var s = document.getElementsByTagName("script")[0];
- s.parentNode.insertBefore(hm, s);
- })();
将百度统计的特征,也就是地址打散成数组,再组装使用:
- var _hmt = _hmt || [];
- (function() {
- var hm = document.createElement("script");
- var analytics_bd = 'ee1f1987ccfc9bcd61a1d220f5ae41e1';
- hm.src = ['ht', 't', 'ps', ':/', '/h', 'm', '.', 'ba', 'i', 'd', 'u.c', 'o', 'm/', 'h', 'm', '.j', 's?', analytics_bd].join('');
- var s = document.getElementsByTagName("script")[0];
- s.parentNode.insertBefore(hm, s);
- }
- )();
需要改动的就只有一行,注意「hm.src = "https://hm.baidu.com/hm.js?ee1f1987ccfc9bcd61a1d220f5ae41e1";」这行代码,被拆散为数组,然后再拼装起来使用。这样他们的爬虫程序就无法识别到你在使用百度统计了。