实施投票系统而无需注册

时间:2009-06-10 21:57:31

标签: php database-design cookies project-planning voting-system

我想在我的网站上实施投票系统,而不必强迫他们创建帐户。他们最终会在一段具有唯一ID的内容上投票/投票。

  • 我知道我可以在带有IP / ID的表中存储条目,但是如果有多个用户来自同一个IP会怎么样?
  • 有没有办法在没有绑定到外部IP的情况下唯一识别访问者?
  • 如果创建了GUID,将其存储在该计算机上的cookie中,以后可以在具有相同IP的同一台计算机上检索吗?一个不同的IP?

对这些问题的任何想法,或对更好方法的任何见解都将不胜感激。

9 个答案:

答案 0 :(得分:23)

是的,您可以使用Cookie并将过期时间设置为未来;然而,没有什么能阻止任何人清理他们的缓存并再次投票。

你最好的选择是使用cookie并且不允许在相同的IP之间在15分钟内投票...没有注册就是你能做到的最好的。

答案 1 :(得分:8)

您可以根据不仅仅是IP来识别用户。例如,您可以包含IP +整个请求标头信息(例如浏览器,版本号,功能)和哈希值。这或多或少会唯一地识别您的用户(不幸的是,不是100%)。

答案 2 :(得分:4)

您可以允许他们使用OpenId登录,这样他们就可以使用现有帐户进行投票,而且他们不必创建新帐户。

谷歌和雅虎等公司提供的服务允许您对用户进行身份验证。

如果您不以某种方式对用户进行身份验证,投票系统会让我滥用。

答案 3 :(得分:3)

原则上,您使用Cookie无法区分从未访问过的访问者和访问过但删除过Cookie的访问者。因此,任何基于cookie的解决方案都容易受到琐碎的投票欺诈。

考虑以J Henry Lowengard的精神来接受这个现实,当他在20世纪90年代中期设置top 100 site on WFMU时,在“你的投票被计算”页面上标有“回去再投票!“

事实上,go there now并投票支持(或反对)StackOverflow!

答案 4 :(得分:3)

IP +用户代理比IP更独特;不确定它是否适合您的目的。如果你向他们发送一个cookie,它就会被那台计算机(如果他们使用相同的浏览器)返回,只要cookie保持不变,无论IP如何,但请注意用户可以随时摆脱cookie。

如果您一直担心使用此系统来防止投票欺诈,我不相信您无法绕过让他们拥有帐户。

答案 5 :(得分:1)

我现在正在考虑同样的问题。我的可能方法如下:

  • (A)您可以接受来自您网站上的人(使用SESSIONS)至少15分钟的投票(这可能是用户阅读博客/网站中文章的大致时间)。当他们投票时,计时器将重置为下一次投票。所以这样,用户就不再删除cookie了。

  • (B)您可以接受未注册人员的投票并获取他们的电子邮件地址并向他们发送验证链接以进行投票。当他们点击他们的电子邮箱中的验证链接时,您实际上可以计算投票数。这就像按电子邮件地址投票一样。

  • (C)(A)和(B)的组合。通过这种方式,您可以确保每隔15分钟向一位用户发送验证链接,这不会太多:)

答案 6 :(得分:1)

我知道这已经过时了,但刚来到这里并有了一个想法......

https://panopticlick.eff.org之类的内容怎么样? 还有一件事可以投入......

(如果这个离线:这是一个由通常的东西加上的累积指纹 +浏览器插件详细信息 +时区 +屏幕尺寸和颜色深度 +系统字体 + supercookies )

答案 7 :(得分:0)

另一种选择是使用会话。它允许您将会话ID与IP一起存储。这将允许您从不同的会话获得多个IP。唯一的缺陷是可能的浏览器切换。添加一个cookie以使其成为三重奏可以帮助清除洪水。

我过去只使用IP地址完成了这项工作,这似乎是小规模的。

答案 8 :(得分:0)

您可以尝试Evercookie或类似解决方案。