2009-04-16 11 views

回答

4

那麼你可以在你的數據庫的datarecord中映射一個cookie + ip-address。識別用戶。因此,如果數據庫中存在ip,則只需添加cookie,但首先檢查cookie以避免通常的數據庫調用。

雖然這不是最佳選擇,因爲學校等可能在很多電腦上都有相同的ips。

你總是可以適應openid!

0

是的,你是對的。

HTTP是無狀態的,因此無法確定您現在收到的請求的來源是否與您收到的請求的來源相同或不同,例如5分鐘前。

餅乾是解決這個問題的唯一方法。即使服務器端會話依靠cookie來維護跨請求的會話身份(忽略將sesison ID傳遞到URL中的安全噩夢,任何具有惡意意圖的人都可以輕易避開)。

0

餅乾是不夠的,因爲你說它可以被清除/過期。

由於DHCP和防火牆的原因,IP地址跟蹤也不是一個選項。

唯一確定是〜100%肯定是用戶,但是再一次,一個人可以註冊多個帳戶。

我會用餅乾,作爲最簡單的螞蟻最不顯眼的方式。如果有人真的想玩這個系統,他會想方設法阻止它。

0

即使有會員資格,用戶也可以多次註冊並投票。

Cookie是處理這種情況的一種方式,但知道他們可以刪除cookie的人可以再次投票。

您可以捕捉選民的IP並基於此限制。但許多人將擁有相同的IP。

可悲的是沒有其他辦法。

1

馬爾科&面貌是正確的,

只是爲了雖然增加,你可能要存儲與時間戳,IP等各票...所以至少,如果有人不嘗試「遊戲」的網站,你將能夠回滾從同一地點或在很短的時間內(即從機器人)製作的選票組合

1

+1對於其他人已經說過的所有內容。這裏有另一種中間方式的想法:

使用cookie作爲限制投票的主要手段。如果找不到cookie,請檢查IP地址。例如,允許來自同一IP的每5分鐘1次投票。

0

如果適合他們,總會有人在玩這個系統。而且,如果你這樣做,你完全不需要cookies,你就可以接受非常簡單的攻擊。

我想你會想考慮如何提高在懷疑雲環境下運行的用戶的經濟成本。

例如,如果具有相同cookie的用戶嘗試重新提交投票,那麼顯然可以很容易地停止。

如果具有不同cookie但來自同一IP的用戶做同樣的事情,它可能來自代理/防火牆,因此您可能希望保持謹慎並強制他們做一些額外的事情,如簡單的CAPTCHA。一旦他們做完了這些,如果他們的行爲正確,只要他們的新cookie保留在他們身上,就不需要任何新的東西。

這意味着沒有cookie的人仍然可以參與,但他們必須重新輸入字母序列或每次都是。一個麻煩,但他們可能習慣於沒有cookie的網站無法工作。如果需要,他們可以制定一個例外。

您真的無法處理坐在IP池(真實或其他)上的用戶,並利用您網站上的新動態攻擊媒介。在這種情況下,他們的經濟投資將超過您的經濟投入,坦率地說,您會失敗。那時,你只是爭着維護你的系統的規則。那時您應該探索需要註冊/電子郵件/手機/短信確認來提高賭注。

0

您可以添加GET變量和URL部分以充當Cookie - 有些網站會在禁用cookie時允許登錄和/或跟蹤。例如,使用源IP和用戶代理字符串生成零件。

site.com/vote?cookie=123456

site.com/vote/cookie123456

相關問題