匿名,防止来自单个用户的多个投票

时间:2015-05-08 00:35:22

标签: android database amazon-web-services database-design

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

允许用户上/下投票说帖子。如何防止同一个用户在同一个帖子上多次投票?

我有一些想法:

  1. 通过为帖子ID唯一键添加本地存储“密钥”来在本地禁用。例如,当用户向上或向下投票时。它会在用户的本地存储上写入一个密钥,其中包含投票类型的信息和帖子的唯一标识符。 这是否可行,投票很多?它会导致任何类型的硬盘消耗/滞后吗?

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

1 个答案:

答案 0 :(得分:1)

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

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

如果防止多次投票非常重要,请在服务器上执行此操作。如果它不是特别重要,那么使用哪种方法对您来说更容易。您还可以考虑两者兼顾:在重复投票尝试时立即向用户反馈(或者只是改变UI以使其无法实现),以及在用户试图获取的情况下在服务器上进行备份验证在客户检查周围。