程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP實現自動刷數和“灌水”機

PHP實現自動刷數和“灌水”機

編輯:關於PHP編程

  今天無意間看到一個網站,它的計數器能夠在靜態頁裡更新,我想,應該是使用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." <p> </p> ";
  }
  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來確定是否允許提交。

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved