我做了一個網站(使用PHP,JavaScript和MySQL的)具有投票系統,它允許人們匿名只是只有一次投票。如何在網站上支持匿名?
這意味着我的系統必須知道誰投了票(因爲我必須檢查用戶是否已經投票)但我不想將用戶名或用戶的IP地址存儲在數據庫中(破壞了匿名)。我不知道如何開始,我需要一些指導方針;我應該尋找什麼?
我做了一個網站(使用PHP,JavaScript和MySQL的)具有投票系統,它允許人們匿名只是只有一次投票。如何在網站上支持匿名?
這意味着我的系統必須知道誰投了票(因爲我必須檢查用戶是否已經投票)但我不想將用戶名或用戶的IP地址存儲在數據庫中(破壞了匿名)。我不知道如何開始,我需要一些指導方針;我應該尋找什麼?
你最大的問題是如何確保用戶只能投票一次,但是這不是問題的問題:你是問如何確保anonimity
這是相當簡單:對待不管你使用單 - 作爲密碼投票,並散列它。因此,讓我們說出於參數的緣故,您使用的是IP。我意識到這個問題,但讓我們假設這是你的選擇。
請注意,這是關於anonimity,而不是如何確保單一投票。
正如Lix所說,沒有存儲IP地址或強制用戶註冊的唯一方法是存儲與會話鏈接的Cookie,但當然這絕不是解決方案,因爲Cookie可以很容易地清除。
你可以嘗試使用持久性Cookie解決方案,例如evercookie,但是如果我是一個實施類似這樣的網站的用戶,它會讓我煩惱多於註冊,而且不管使用什麼方法,他們總是可以繞過去除Cookie /識別信息。
另一種可能性是它得到了很多的宣傳,去年(抑或是2012 - 我忘了)永久性Cookie的另一種形式,它利用閃存存儲cookie。這些Cookies可以在多個瀏覽器中訪問。一種這樣的解決方案是flash-cookie,但同樣,這可能會讓用戶煩惱,並且不會100%可靠,因爲並非所有用戶都啓用了Flash或安裝了Flash。
如果不進行身份驗證的每一票,那麼你將不能夠在所有的固定。您可能會在客戶端存儲一些cookie,但任何人都可以清除這些cookie並將您帶回原來的位置。 – Lix
甚至可以更改IP地址。我有一個動態的IP分配給我的ISP,每當我重新啓動我的路由器時會發生變化。我曾經通過簡單地通過批處理腳本和提琴手重新啓動路由器來幫助我的侄女贏得多次投票。 – DhruvJoshi
@DhruvJoshi - 啊哈!所以你**承認!**我認爲這場比賽有些腥意! ;) – Lix