繁体   English   中英

匿名防止单个用户进行多次投票

[英]Preventing Multiple Votes from a single user, with anonymity

我有一个Android应用程序,允许用户通过我有代码的Java Web服务器将信息发布到数据库。

允许用户对投票发表评论。 如何防止同一用户在同一帖子上投票过多次?

我有一些想法:

  1. 通过为帖子ID唯一键添加本地存储“键”来在本地禁用。 例如,当用户投票赞成或反对时。 它在用户的本地存储区上写有投票类型信息和帖子的唯一标识符的密钥。 大量投票是否可行? 这会导致硬盘消耗/滞后吗?

  2. 在应用程序安装时生成的用户电话上存储唯一生成的密钥。 该密钥将被提交到数据库中的新表,该表将带有投票的帖子和“用户密钥”相关联。

如果您希望获得大量信息,那么数据库可能是您的最佳选择。 显然,这将占用存储空间,但不会占用太多空间。 根据我的经验,写入数据库往往非常快。

唯一键也可以正常工作。 这样会更安全(取决于您的操作方式),因为很难从客户端欺骗它。 如果您根据用户的Google帐户或设备ID生成密钥,则状态良好。 如果您通过某种伪随机方法进行操作,则用户仍然可以通过清除应用程序数据并获取新密钥来进行多次投票。

如果防止多次投票确实很重要,请在服务器上进行。 如果不是特别重要,请采用您认为更简单的方法。 您还可以考虑同时兼顾这两个方面的优点:在重复投票尝试时立即向用户反馈(或只是更改UI以使其无法使用),以及在服务器上进行备份验证(以防用户尝试获取)围绕客户检查。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM