我正在为我的网络应用程序构建一个匿名投票系统。我的目标是建立一个每台计算机(设备)只能执行 1 票的系统。我知道实现这一目标的最佳方法不是通过使用匿名用户来实现它,但我不太关心构建一个完全安全的系统。
我搜索过有关持久性 Cookie 的信息,但我很快意识到 Cookie 对于每个浏览器而言都是唯一的,而不是对于每个设备而言都是唯一的,然后普通用户可以轻松地发现他们可以在 Firefox 浏览器上投票后再次在 Chrome 上投票。如果您能给我任何建议,我将不胜感激。
构建这个系统的最佳方法是什么?
最佳答案
来自how to allow only one vote for a rating system @迈克·谢里尔“嘘声”:
似乎没有实际的方法可以严格执行网络上的每人一票。
在计算机网络上,我们经常使用人的代理人。其中一些是
- 网络或应用程序登录,
- 电子邮件地址,
- IP 地址,
- cookie,
等等。但当涉及到每人一票时,所有这些都存在问题。
- 对于网络登录,一个人通常可以创建多个帐户。 (特别是如果它们是免费的。)
- 电子邮件帐户是免费的,并且许多(大多数?)人现在拥有多个电子邮件帐户。
- IP 地址可能有效,但仅限于具有非共享计算机(公司政策为每台计算机一个人)的 Intranet(通过每台计算机使用一个 IP 地址实现)。
- Cookie 与网络登录存在同样的问题。 (并且用户可以删除它们。)
如果一票真的有值(value),有些人会不辞辛劳地投两次票。但大多数选票并不是很有值(value)。
关于java - 实现匿名用户投票,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16432383/