其實我自己沒有用過刷票軟件,但是我和刷票軟件之間卻有過戰斗!
之前幫學校做的投票網站再次上線后發現還是遇到了投票軟件的攻擊。后面我也好奇於是去網上找了一些關於刷票軟件的資料。
看看能否從中找到一些辦法去阻擋。
先來看一款刷票軟件的界面
從界面上我們可以知道,驗證碼基本可以識別所以使用驗證碼基本沒用了,
還有一點刷票器需要輸入投票地址,基本上每個選手都會有一個投票的地址,這個地址需要你填寫的。呵呵重點就在這里了,
其實我們可以動態的改變每一次每一個選手的投票地址,所以投票的網址一變化投票軟件在強大也無濟於事了。
具體實現思路:
如果原來的投票路徑為 xxx.jsp?id=5;
5是選手的id號,我們可以為5做一個UUID映射
5---adfaklsdaweri12nbfaaisd12fh3
每次請求時變化UUID的值所以每次投票地址都會變化
當然這個映射我們自己也需要知道,所以這個映射需要存在session中 用用戶的IP地址作為key 映射關系作為值,每次投票的時候根據
UUID取出對應的id號完成投票。
還有一點需要注意,一些強大的投票軟件可以提供大量真實的qq,微博,微信賬號去投票所以不是用qq和微信登陸就能夠預防機器投票的。要多種方式組合用,
我整理一下這次投票網站用到的防止機器投票的一些方法:
1、每個人使用QQ登陸
2、動態改變投票地址
3、限制單個ip連續請求時間間隔不得低於500mm
4、記錄每次投票的流水信息,萬一被攻破可以從流水信息中找出異常票數,在統計時干掉。
5、記錄用戶cookie信息