一尘不染

投票系统中的唯一IP

mysql

我正在为我的PHP / MySQL网站创建一个投票系统,我想确保一个用户只能投票一次。什么是这样做的好方法?到目前为止,我已经想到并半实现了以下内容:

  • 使用IP和表决将单个表决存储在数据库中。这样会造成体积大,但可确保每个用户获得一票。

  • 在用户端存储cookie,以检查他们是否投票。这是最简单的方法,但显然用户只能禁用cookie。

什么是最实用的方法?任何其他建议都值得欢迎。


阅读 309

收藏
2020-05-17

共1个答案

一尘不染

完美无缺:( 唯一的政府编号)

  • 用户使用可验证的唯一标识符(例如社会安全号或护照号码)投票

逼近真实感:( 电子邮件/第三方身份验证)

  • 用户使用电子邮件地址和密码(或google / facebook)注册帐户
  • 1个电子邮件地址= 1票
  • 用户无法清除Cookie并获得额外的选票,应用程序不会通过共享IP关闭1000个

善意却虚假 (IP地址)

  • 办公楼:同一外部IP上的1000个用户被拒之门外
  • 大学:在教室中连接到无线网络。投票。移到下一个教室。重新连接并再次投票

The Crash-And-Burn (Cookies)

  1. 投票
  2. ctrl shft del enter
  3. 投票
  4. 重复
2020-05-17