2011-11-10 157 views
1

防止revotes我已經建立了投票系統,就是當你投它使用存儲您的外部IP:在投票系統

$_SERVER['REMOTE_ADDR']; 

它存儲這在一個名爲IPLIST數據庫。 它還設置了一個cookie。 在輪詢頁面中,如果cookie被設置或者mysql_num_rows的數量大於1,它將禁用收音機框。 這是爲了防止重新投票。

但是有些電腦有相同的外部IP地址。這些可以在我的學校一次成百上千。如果我在一臺電腦上投票,沒有人可以再次在我的學校投票。

有什麼辦法可以解決這個問題。例如,要查找網絡中的計算機數量,請更改mysql_num_rows。或者在每臺計算機上查找唯一的常量變量以存儲在數據庫中。

謝謝。

+3

如果你真的擔心匿名用戶在玩你的投票系統,請讓他們登錄並將投票結果與用戶聯繫起來 –

+0

有些東西可以讓你找出網絡中有多少臺計算機不屬於你將是一個安全問題。 – NullUserException

+0

我不在乎用戶的匿名性 –

回答

4

根本沒有辦法事先知道給定IP地址後面有多少設備......實際上,事情比您對AOL用戶所想的要糟糕得多(可能有數萬臺計算機在給定的背後IP地址(AOL代理)。

如果你不太擔心保護的結果,你可以放置一個Cookie。否則,作爲評論者的一個暗示,一個登錄系統是一個很好的,標準的方法。

2

沒有100%的方法可以確保一個人進行多次投票。你可以做的最好的事情就是讓事情變得困難。用電子郵件地址綁定,並使用類似catcha以確保非自動投票。可以發送需要回復以確認投票的電子郵件。

+0

自2008年以來,Captcha已被破解。殭屍程序作家可以使用庫來自動破解Captcha。 –

+0

我知道 - 只是我頭頂的東西 - 情緒只是讓它變得困難。我確實說過* *類似於* –

+0

@Erik,這是真的...... http://en.wikipedia.org/wiki/Tesseract_(software)存在並且與許多訓練數據非常吻合。然而,如果這次調查中的「獲勝者」沒有獲得獎勵,並且驗證碼不是已經有必要文件生成的,那麼我認爲captach是一個非常好的解決方案。 – sberry