我有一個網站,用戶可以發帖子投票。允許訪客用戶投票發佈是非常重要的,避免來自同一位訪客的多票投票也非常重要。如何防止訪客用戶投票兩次?
Cookies,可以很容易地刪除,所以這不可能是解決方案。
IP,如果你考慮NAT的情況非常糟糕。
所以我想,我需要更先進的方式去,也許其他類型的餅乾..?
如果有人在類似的情況下有經驗請幫助。
我有一個網站,用戶可以發帖子投票。允許訪客用戶投票發佈是非常重要的,避免來自同一位訪客的多票投票也非常重要。如何防止訪客用戶投票兩次?
Cookies,可以很容易地刪除,所以這不可能是解決方案。
IP,如果你考慮NAT的情況非常糟糕。
所以我想,我需要更先進的方式去,也許其他類型的餅乾..?
如果有人在類似的情況下有經驗請幫助。
什麼,你只可以做在用戶未登錄 - 是使竭盡全力地爲他們投票的第二次。例如,您可能:
在客戶端:
在服務器端 - 商店並檢查有關用戶儘可能多的信息,您可以:
等
但你仍然無法阻止智能,真正想從投票作弊匿名用戶。
因此,它可能不試圖阻止投票,但它可以檢測並「複製」票反而更有益(即在相同的時間段內從相同的IP和瀏覽器組合投票選擇相同的選項可能被認爲是「被欺騙」)。
是唯一半完美的解決方案是跟蹤IP地址。您可以將它們永久存儲在表中,或將它們緩存在Memcache或類似的一段時間。當然,如果用戶登錄,最好的方法是簡單地檢查用戶是否已經投票。
會話和Cookies是無用的,因爲人們可以簡單地寫忽略會話數據的自動投票算法。
如果用戶是匿名用戶並且不需要進行身份驗證,則無法阻止此操作。
如果有人真的想投幾次,用戶可以只打開網頁其他設備上,並再次表決,即使你能認同的一種永久性的Cookie的他/她的設備。
看來您已經預料到會有用戶刪除他們的Cookie以便能夠再次投票。你將無法阻止它們,但你可以讓它變得更難。
你不能阻止這種情況發生。你只能盡力去限制它。 –
你可以使用指紋技巧,雖然這也不是萬無一失的。如果你想絕對確定,你必須實現一個真正的認證機制。 – Pointy
嘗試使用這個 - https://github.com/samyk/evercookie –