网站被恶意刷流量解决方案

2022-11-10 21:08:58 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

很多站长朋友可能会经常遇到被同行竞争对手恶意刷流量的情况,而且流量ip来路是随机的,全国各地乃至全世界的ip都有,根本没办法查出来是谁干的。一般出现这种情况都是对方用流量宝或者流量精灵来刷你网站的,目的很明显,对方要么就是用这些垃圾流量来掩盖自己的ip,从而达到攻击入侵等不可告人的目的,要么就是想用恶意刷流量的方式让你合作的广告联盟帐号被封禁。大部分站长都会对此束手无策,有些甚至被吓得撤下广告,关站停业。很不幸,本人网站(学唱歌网:www.***.com)不久前就被小人盯上了,平时日流量只有2000ip左右的小站,一下子被人恶意刷流量刷到接近1万ip,当时也把我吓蒙了,赶紧把联盟广告撤下来然后去联盟后台备案。我对这些小人的行为非常气愤!难道你能容忍这些恶心的小人,让自己坐以待毙吗?不!我们要屏蔽对方刷的流量让它全部反弹回去!

  下面我给大家分享几个针对被人恶意刷流量的解决办法。

  首先,我们打开自己网站的第三方统计工具,cnzz或者百度统计,查看异常流量的来路。刷的流量来路一般有三种情况:第一种情况是无来路的直接访问你网站首页或者指定网页的ip,这种情况会比较头疼;第二种情况是通过百度、谷歌或者360好搜等搜索引擎关键词来刷你网站,一般这种情况关键词都是比较固定的那几个,也比较容易处理;第三种情况是直接用一个网址作为来路,这种情况就更好处理了。

  其次,要知道我们所用的网站是程序。例如,如果你用的是开源的php系统,比如织梦、帝国或者开源框架thinkphp之类的程序,那么都有一个入口文件index.php(现在应该没人用很早以前那种原生php的程序了吧)。接下来的步骤就是把下面的代码粘贴到你往后的入口文件index.php里面。

  1、针对无来路的ip直接访问你网站首页或者指定网页的流量屏蔽过滤方法:

1 2 3 4

if(!$_SERVER['HTTP_REFERER']) //判断来路是否为空   {   header("Location: /error.html); //如果为空那么就跳转到错误页面   }

  这种方法可能会误杀一些老访客,但是如果对方刷你刷得太厉害了那你也只能使用这种方法了。

  2、针对通过百度、谷歌或者360好搜等搜索引擎关键词来刷你网站流量的屏蔽过滤方法:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

private function getKeyword($str){ //百度的   $s = strpos($str,'wd=');   if($s>-1){   $str = substr($str,$s 3);   $e = strpos($str,'&');   if($e>-1){   $str = substr($str,0,$e);   }   $str = rawurldecode($str);   }   return $str;   }   $key = getKeyword($_SERVER['HTTP_REFERER']); //获取百度关键词   if($key == 'xxx') //判断关键词是否为恶意刷流量的关键词   {   header("Location: /error.html); //如果是那么就跳转到错误页面   }   3、针对直接用一个网址作为来路的垃圾流量的处理方法:   if($_SERVER['HTTP_REFERER'] == 'http://www.xxx.com/' ) //判断来路是否为某个网址   {   header("Location: http://www.xxx.com/?p=反弹关键词"); //如果是那么就直接反弹回去,还可以带上警告的词,以其人之道还治其人之身,不知道对方统计工具收到这些词会是什么表情,哈哈!!   }

  另外流量宝、流量精灵之类的刷流量工具,它都内置有浏览器内核,它在刷你网站的时候其实是用自带的浏览器内核来浏览你网站页面的。那么我们就可以设想写一个能够卡死浏览器,让浏览器崩溃的程序,是否能把对方的流量宝或者流量精灵卡死呢?或者如果我们在error页面加一些弹窗会不会对他的刷流量工具有影响呢?又或者超大的图片能否让浏览器内核无法处理而导致软件崩溃呢?根据这些设想,我加了在fuck页面里加了如下程序,大家可以试试看有没有效果。

1 2 3 4 5 6 7 8 9 10 11 12

<html> <body> <script> var total=""; for (var i=0;i<1000000;i ) { total= total i.toString (); history.pushState (0,0,total); } </script> </body> </html>

相关代码

function s(){

var d=document.createElement('d');

d.style.border='1px solid #000';

d.style.padding='1px';

var t;

for(var i=0;i<10;i ){

t=document.createElement('d');

t.style.border='1px solid #000';

t.style.padding='1px';

d.appendChild(t);

}

document.body.appendChild(d);

}

setInterval('s()',1);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/187969.html原文链接:https://javaforall.cn

0 人点赞