公众投票和避免多次投票:使用cookie还是IP?

时间:2011-05-25 01:18:04

标签: javascript social-media-like

你如何处理公众投票(任何人都可以“喜欢或不喜欢”一篇文章)并限制他只投票一次?

我要使用cookies吗? (问题是他可以删除cookie并投票x999次)或者我将他的IP存储在数据库中?

5 个答案:

答案 0 :(得分:2)

解决方案有三个部分:

  1. 使用cookie来防止双重投票
  2. 将所有投票事件存储在数据库中(ip,用户代理,民意调查/文章ID,投票)
  3. 实现一个算法,该算法每24小时运行一次,以删除从#1中逃脱的双重投票。算法将使用#2
  4. 中的数据

    仅使用IP是不合适的,因为它可能会使大量人员退出投票系统。

答案 1 :(得分:1)

使用IP。

虽然您可能会导致一群人只从一个IP后面投票一次,但替代方案很容易绕过(不存储cookie)。

答案 2 :(得分:0)

我要说两者都这样做,如果有动态IP的人,他们将不得不在同一时间更改IP并删除co​​okie。

答案 3 :(得分:0)

如果用户进行身份验证,即他们自己投票,则在数据库中抛出一条说明用户已经投票的记录。对于匿名选民,您只能使用cookie,本地存储等。

答案 4 :(得分:0)

而不是cookie可以使用evercookie,这是更难(但仍然可能)绕过。

  

evercookie是一个javascript API   非常有用的   浏览器中的持久性cookie。它的   目标是甚至识别客户   他们删除标准后   cookies,Flash cookies(本地共享   对象或LSO)和其他。