PHP投票程序在做活動時會用到了,我們今天就為各位朋友分享一個PHP投票程序,有需要了解的同學不防一起來看看吧.
PHP刷投票,讓你高居榜首,本文附上刷票方法和防御策略.
案例為一個半月以前,沒有及時放出原因有二,一是因為博客域名備案沒有下來,沒有心情寫東西,二是最主要的,及時放出對案例網站有嚴重的損害,不是我等IT人應有的.
Ps:刷票有風險,使用需謹慎,本文謹做學習研究討論之用,不可用作不正當用途!
本文為本博客的處女之作,題材源于近日一朋友要求,是因為她的姐姐參加了一個書法比賽,問我能不能在網站上刷投票,作為剛剛出道一年的小菜鳥,我很惶恐,一年前剛剛接觸PHP的時候,完全不知道做,現在第一反應就是Curl.
廢話不多說了,直接上代碼:
- <?php
- header('Content-type: text/html; charset=gb2312');
- //隨機生成IP
- $ip1 = rand(101, 255).'.';
- $ip2 = rand(1, 255).'.';
- $ip3 = rand(1, 255).'.';
- $ip4 = rand(1, 255);
- $ip = $ip1 . $ip2 . $ip3 . $ip4;
- $clientIp = 'CLIENT-IP:'.$ip;
- $xforwarded = 'X-FORWARDED-FOR:'.$ip;
- //設置目標和來源
- $url = 'http://www.dunhuangwomen.org.cn/vote/Vote.asp?id=67';
- $referer = 'http://www.dunhuangwomen.org.cn/vote/list.asp?id=2';
- //Curl //開源軟件:Vevb.com
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url); //目標
- curl_setopt($ch, CURLOPT_HTTPHEADER, array($xforwarded, $clientIp)); //構造IP
- curl_setopt($ch, CURLOPT_REFERER, $referer); //來源
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_HEADER, 0);
- $ret = curl_exec($ch);
- curl_close($ch);
- echo $ret;
- ?>
好,來分析一下.
1、仿造IP,網站有限制一個IP在一天只可以投一次.
2、填寫來源,網站會判斷請求的來源是否合法路徑.
其他就是Curl的常規了選項了.
如何防治?
本人才疏學淺,僅作跑磚引玉.
1、限制IP:本文已經破解
2、限制來源:本文已經破解
3、驗證碼:作為最反人類的發明之一,可以使用這個擁有高大上的名字的全自動區分計算機和人類的圖靈測試.可用Opencv。
4、記錄MAC地址
理論上每塊網卡都有一個唯一的MAC地址,如果更改可能引起沖突而無法上網,目前也可以用軟件修改.
5、注冊會員
雖說仍然可以突破驗證碼,Curl填寫參數然后POST過去,但是門檻畢竟高了一丁點,還是忽略吧.
6、手機
投票時輸入手機號和短信驗證碼,成本高,單位不愿意,用戶發送某某指令到某某,用戶自掏腰包,用戶不愿意,目前來說,只有驗證碼,手機并且驗證手機的有效性是最好的防治措施.
新聞熱點
疑難解答