分享网站被人恶意刷流量的几个解决方法

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

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

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

  if(!$_SERVER['HTTP_REFERER']) //判断来路是否为空

  {

  header("Location: /error.html); //如果为空那么就跳转到错误页面

  }

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

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

  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=反弹关键词"); //如果是那么就直接反弹回去,还可以带上警告的词,以其人之道还治其人之身