5

我是 Django 新手,但正在 Django 网站上编写用于创建投票的教程。

使客人(无需注册/登录)只能在投票中投票一次的最佳方法是什么?

  • IP(不要IP,因为共享网络的人只能投票一次)。
  • Cookie(用户可以删除 cookie,但似乎是最好的方法)。
  • 会话(如果用户关闭浏览器,会话将改变)。

我猜 Cookie 将是最好的方法,但对于 Django 有更好的方法吗?

4

2 回答 2

7

有一种解决方案独立于您使用的服务器框架:

Evercookie为您提供几乎不可撤销的 cookie。如果您想要那种级别的数据持久性,请使用它们。

Evercookie 是一种将数据存储在 cookie 和其他各种地方(例如 Flash“ cookie ”、HTML5 的LocalStorage等)使用的内存的解决方案。如果这些地方中的任何一个被清除,下次访问该站点时将再次用数据填充它。您唯一需要的是存储在 Evercookie 使用的 13 个位置中的任何一个中的数据,下次访问时会将其再次填充到其他 12 个位置。

摆脱此类 cookie 非常困难,因此请考虑您的用户是否真的同意以这种方式进行跟踪。他们中的一些人当然不会同意。

于 2012-06-15T23:06:21.687 回答
1

如果人们只能投票一次很重要,那么无论如何都要考虑创建一个基本的注册/登录系统。客人总是可以使用多台计算机来扭曲投票,而帐户注册至少可以让您跟踪正在使用哪些电子邮件地址进行投票。以这种方式倾斜投票也需要更多的努力。如果它很重要但不重要,那么我会为匿名客人使用 cookie 方法。

于 2012-06-16T11:37:17.603 回答