2009-06-10 90 views
18

我想在我的網站上實施投票系統,無需強制他們創建帳戶。他們最終會投票上下一段具有唯一ID的內容。無需註冊即可實施投票系統

  • 我知道我可以將條目存儲在IP/ID表中,但是如果有多個用戶來自同一個IP?
  • 有沒有一種方法可以唯一標識訪客,而不會將其綁定到外部IP?
  • 如果創建了一個GUID,將其存儲在該機器的cookie中,稍後可以在具有相同IP的同一臺計算機上檢索它?不同的IP?

對這些問題的任何想法或任何洞察到更好的方法將不勝感激。

+0

那麼怎樣才能阻止某人投票上下50或100次? – matpie 2009-06-10 22:05:44

+4

我相信OP的意圖是:我怎樣才能防止同一個人多次上/下投票。 – Nate 2009-06-10 22:07:57

+0

是的 - 背後的想法是防止濫用,但設計一個系統,不需要註冊 – barfoon 2009-06-10 22:10:01

回答

21

是的,你可以使用一個cookie,並設置過期到未來很遠;然而,沒有任何東西可以阻止任何人清除緩存並再次投票。

最好的辦法就是使用cookie,並且不要在15分鐘之內允許來自同一個IP的投票...沒有註冊這就是你可以做的最好的選擇。

3

原則上,使用cookie來區分未訪問過的訪問者和已訪問但刪除了cookie的訪問者是不可能的。因此,任何基於cookie的解決方案都容易受到普通投票欺詐的影響。

考慮的J Henry Lowengard精神擁抱這個現實,誰,當他建立了top 100 site on WFMU早在90年代中期,設在一個按鈕,「您的投票已計入」「去標籤頁返回和投票多一些! 「

實際上,go there now並投票支持(或反對)StackOverflow!

4

你可以讓他們使用OpenId登錄,這將允許他們使用現有帳戶進行投票,他們不會必須創建一個新帳戶。

谷歌和雅虎等都有服務允許您對用戶進行身份驗證。

如果你沒有以某種方式驗證用戶,投票系統會打開濫用。

+5

它會被濫用,期限。可以擁有的OpenId賬戶數量不受限制。實際上,成爲OpenId供應商非常簡單,只需很少的努力即可生成無限數量的OpenId帳戶。 – 2009-06-10 22:19:05

8

您可以根據不僅僅是他們的IP來識別用戶。例如,您可以包含IP +整個請求頭信息(如瀏覽器,版本號,功能)並對其進行散列。這將或多或少地唯一標識你的用戶(不幸的是,不是100%)。

3

IP +用戶代理比IP更獨特;不確定它是否適合你的目的。如果您向他們發送cookie,則只要Cookie保持在周圍(不管IP)如何,該cookie就會被該計算機返回(如果他們使用相同的瀏覽器),但請注意,用戶可以隨時擺脫cookie 。

如果您擔心在所有關於使用該系統,以防止選舉舞弊,我不相信你不會是能夠得到解決使他們有一個帳戶。

0

另一種選擇是使用會話。它將允許您將會話ID與IP一起存儲。這將允許你獲得多個IP,但來自不同的會話。唯一的缺陷就是瀏覽器可能的切換。添加一個曲奇讓它三重奏可以幫助消除洪水。

我以前只用IP地址就可以做到這一點,這似乎可以在小範圍內工作。

1

我現在正在考慮同樣的問題。我可能的方法將作如下安排:

  • (A),你可以接受這些人誰是你的網站投票(使用會話)至少15分鐘(也可以是大約時間,用戶閱讀博客/網站上的文章)。當他們投票時,計時器將重置爲下一個投票。所以這樣,用戶就不用再刪除cookies了。 (B)您可以接受未註冊人員的投票並收取他們的電子郵件地址並向他們的投票發送驗證鏈接。當他們點擊郵箱中的驗證鏈接時,您實際上可以對投票進行計數。這就像每個電子郵件地址的投票。 (A)和(B)的組合。這樣,你可以肯定你會被髮送的驗證鏈接僅每15分鐘,這將不會是一個很多:)

0

你可以嘗試Evercookie或類似的解決方案,單個用戶。

1

我知道這是舊的,但只是來到這裏,有一個想法..

什麼像https://panopticlick.eff.org? 另一個事情之一,可以扔在..

(如果這個不斷下線:這是一種由平常的東西加 +瀏覽器插件詳細累計指紋 +時區 +屏幕大小和顏色深度 +系統字體 + supercookies )