公众投票和避免多人投票:使用cookie或IP



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

我必须用饼干吗?(问题是他可以删除cookie并投票x999次)还是我将他的IP存储在数据库中?

解决方案有三个部分:

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

只使用IP是不合适的,因为它会让大量的人退出投票系统。

使用IP。

虽然你可能会导致一群人在一个IP后面只投票一次,但其他选择很难绕过(不要存储cookie)。

我会说两者都做,这样,如果有人拥有动态IP,他们将不得不同时更改IP和删除cookie。

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

可以使用evercookie代替cookie,这更难绕过(但仍然可能)。

evercookie是一个javascript API可提供的浏览器中的持久cookie。它的目标是识别客户在他们删除标准之后Cookie、Flash Cookie(本地共享对象或LSO)以及其他。

相关内容

  • 没有找到相关文章

最新更新