PHP投票系統如何防刷票

來源:互聯網
上載者:User

生活中,不少人都會遇到需要投票。但往往投票的地方也是薄弱的,可能對投票來源沒有驗證的話,將會導致刷票,嚴重的話還會導致網站淪陷。

 下面這篇文章就是講如何防刷票,雖然不是100%能防止,但是也能從根源上杜絕了一大批菜鳥對系統的破壞。我就直接轉過來了:) 剛剛做了一個刷票系統,感觸不少,剛開始也是遇到好多好多刷票的。經過了一次又一次的改正,基本上杜絕了刷票程式進行的刷票。 下面把具體刷票方面列舉出來
 1.首先 一個複雜的驗證碼是非常非常重要的,剛開始用了一個很簡單的小驗證碼,根本躲不過刷票程式的破解。所以在網上找了一個很複雜的驗證碼,連人工投票都得重新整理兩下。有需要的可以留下郵箱,我會在第一時間發過去。 2.因為投票都是實名制的,填寫社會安全號碼碼的,所以 社會安全號碼碼的驗證也是必要的。首先社會安全號碼碼必須為18位(一代身份證現在基本上見不到了),前17位必須為數字。代碼現在寫出來一個參考的 if(((strlen($sfz))!=18 and (strlen($sfz))!=15) or (!is_numeric(substr($sfz,0,strlen($sfz)-1)))) “$sfz”是接收到的社會安全號碼碼,這條語句後面可以添加一個提示方式。另外在 投票之前驗證當前身份證是否已經投過票,否則不予計票。 3.如果特別正式的可以使用註冊後再進行投票的機制,註冊的時候也應該對 註冊資訊進行判斷,註冊的時候必須添加驗證碼進行限制。 4.程式的的安全機制也很重要的,如果使用物件導向的程式, 必須把計票的函數設為private,防止SQL注入! 5.另外就是 使用cookie方式在用戶端進行時間限制,這種方式是防君子不防小人,專業刷票團隊肯定首先會想到這一點。但還是建議加上。 6.還有一個就是 IP限制,比如每個IP只允許投100票(考慮到一些公司使用一個大區域網路,公網IP都是用的一個,否則可能會出現不公平的現象)。 7.最後一個也是最重要的, 驗證碼輸入框那裡用非同步通訊進行實現。網頁初始驗證碼是不顯示的,點擊驗證碼輸入框再顯示出來驗證碼,而投票成功之後馬上unset驗證碼的SESSION。這樣就可以避過絕大多數刷票機。 本文大概提供了一些常規的思路,所謂防人之心不可無,你不能確保每個使用者輸入的都是安全的。最後說一句:檢查的時候記得白名單,這是必要的。

相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。