近日,在百度统计后台中广告泛滥,包括收流量、代开发票、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);
}
)();