我有一个网站,用户可以发布帖子并投票。允许访客用户投票支持帖子非常关键,避免来自同一位访客的多次投票也非常重要。
Cookie ,可以轻松删除,因此无法解决此问题。
IP ,如果您考虑NAT情况会非常糟糕。
所以我认为,我需要更先进的方法,也许还有其他类型的饼干......?
如果有人有相似背景的经验,请帮助。
答案 0 :(得分:2)
关于未登录用户你只能做些什么 - 是尽可能让他们第二次投票。例如,您可以:
在客户端:
在服务器端 - 尽可能多地存储和检查有关用户的信息:
等
但你仍然无法停止聪明,并且真的想欺骗匿名用户投票。
因此,不尝试阻止投票而是检测并忽略“重复”投票可能更有用(即,在同一个IP和浏览器组合中对同一选项的投票可能会被视为“受骗”)
答案 1 :(得分:0)
是唯一的半完美解决方案是跟踪IP地址。您可以永久地将它们存储在表中,也可以在Memcache或类似的程序中将它们缓存一段时间。当然,如果用户已登录,最好的方法是简单地检查用户是否已投票。
会话和Cookie无用,因为人们可以简单地编写一个忽略会话数据的自动投票算法。
答案 2 :(得分:0)
如果用户是匿名用户而无需进行身份验证,则无法阻止此操作。
如果有人真的想多次投票,用户可以在另一台设备上打开该页面并再次投票,即使您可以使用某种永久性Cookie识别他/她的设备。
您似乎已经预料到有用户会删除其Cookie以便能够再次投票。你无法阻止它们,但你可以让它变得更难。