最近查看自己网站的百度统计数据,发现统计代码被人利用,刷了好多的广告,影响了真实统计数据的展现,所以就想了个方法来杜绝统计代码被人恶意利用。

统计代码如何被刷广告的

1、利用特定的软件来爬去一些网站的数据,来寻找网站中是否有统计代码

2、以百度统计为例,如果网站源码中含有“hm.baidu.com/hm.js”字符串,则表示使用的百度统计

3、每个网站的百度统计都有自己的标识符,也可以说是网站的身份编号,如下面下的百度统计代码。

<script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?9485684615aasdf";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script>

以上代码中的 

 hm.src = "https://hm.baidu.com/hm.js?9485684615aasdf";

中的

9485684615aasdf

则为网站的标识符号。

4、获取到百度的统计代码后,只需要将网站的标识符号提取出来就可以刷广告啦

杜绝网站统计被刷广告的方法

我们这里还是以百度统计为例,当然其它的统计也是类似的操作方法。

只需要将百度统计的链接进行拆分,再通过JS脚本逻辑进行组合,让爬去网站统计代码的工具失去作用即可。

修改如下:

例1:

拆分js的链接,利用 join() 方法再次组合起来!

<script>
var _hmt = _hmt || []; 
(function () { 
    var hm = document.createElement("script"); 
    var analytics_bd = '9485684615aasdf';
    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); 
})();
</script>

例2:

<script>
var _hmt = _hmt || []; 
(function () { 
    var hm = document.createElement("script"); 
    hm.src = ['ht', 't', 'ps', ':/', '/h', 'm', '.', 'b','a', 'i', 'd','u','.c', 'om', '/', 'h', 'm', '.j', 's?', '9485684615aasdf'].join('');
    var s = document.getElementsByTagName("script")[0]; 
    s.parentNode.insertBefore(hm, s); 
})();
</script>