2014-02-27 156 views
-1

我知道這個問題之前已被問過,但我從來沒有找到合適的答案。如何避免羣衆喜歡和不喜歡投票系統

我想用不同的entrys建立一個類似博客的頁面,每個頁面都可以被喜歡和不喜歡。

我讀過,我可以創建一個數據庫與以前的喜歡,IP地址和用戶客戶端,並設置cookie。但是用戶客戶端可以被操縱,ip地址可以被改變並且cookie可以被刪除。

如何避免大衆不喜歡或喜歡,如果攻擊者刪除cookie和更改每個喜歡/不喜歡的ip?

+0

你可以買臉上的喜歡,沒有什麼會永遠停止堅定的人。它的交易時間是你花費在試圖阻止它們的時間,而不是爲了這樣做 – 2014-02-27 02:17:30

+0

請務必閱讀選擇標籤時出現的有用描述! – Charles

回答

2

如果你問如何可以絕對100%保證沒有人能投兩次票,我認爲這個問題的答案是,它無法做到的。不是在實踐中;甚至在理論上可能都沒有。如您所說,您可以在用戶的​​計算機上放置一個cookie - 但足夠複雜的用戶可以刪除該cookie。您可以跟蹤每個選民的IP - 但有人可以從不同的計算機投票,或通過代理提交投票。您可能需要用戶創建一個帳戶,並且只允許每個帳戶進行一次投票 - 但是有人可以創建多個帳戶。您可能會要求用戶提供社會安全號碼或駕駛執照號碼 - 但某人可能會使用虛假或被盜號碼。

您可以向人們收取投票費用。這不會阻止某人投票兩次,但他可以投票的次數將受到他的銀行賬戶的限制以及他願意花多少錢。

我想理論上你可能會要求用戶提交他的指紋或DNA樣本。但據我所知,很少有人將計算機指紋識別器連接到計算機上,而使用DNA分析儀的人甚至更少,所以我認爲這不是特別實用。即使他們這樣做了,你如何確保有人不出門從隨機陌生人那裏收集DNA樣本 - 比如說,在當地的快餐店收集廢紙杯 - 通過DNA掃描儀運行?

你可以做任何以上的,毫無疑問,許多其他的事情,讓人難以投票兩次。但是,如果人們足夠關心想要打破你的系統,那麼你最終會在遊戲中放置圍欄,並且找到爬過它們或者在它們上面打洞的方法。

這確實帶來了一個有趣的一點。有許多方法可以確認自稱是X人的人是昨天來過的同一個人X:例如,我們可以要求他在第一次訪問時提供密碼,然後在隨後的訪問中重複該密碼。冒名頂替者會難以找到密碼。但是,你如何證明你是一個不同的人?說他必須證明他不知道密碼,這很難說。什麼會阻止一個人故意輸入錯誤的密碼?

1

要求用戶登錄後才能投票。就像Stack Overflow一樣。

enter image description here

+0

我仍然可以創建500個帳戶,但需要一段時間:-) – 2014-02-27 02:14:26