我目前负责建立一个轮询系统(使用PHP).
现在为了尽可能安全和客观,访问者只能投票一次非常重要.我正在考虑通过访问者的IP来验证民意调查(一个IP只能进行一次投票),并且可能会进行验证码测试以确保一旦他们因某些原因通过了IP验证就没有机器人可以进入.
所以它是唯一的IP验证和验证码.但这够了吗?单个用户是否有可能通过使用代理或其他我不知道的方式来更改他/她的IP,并使用唯一的IP多次投票?
有没有更好的方法来做到这一点?最好没有验证码.
提前致谢.
当公共投票系统不需要登录时,绝对无法确定用户是否已投票一次.
由于某些原因,检查IP并不是一个好主意.如其他答案中所述,许多网络都在一个ip后面,用户可以使用另一台具有不同ip的电脑并再次投票.
的OpenID
使用OpenId识别用户并检查他们是否已经投票.
注册用户
您可以选择允许用户在没有openid帐户的情况下进行自我注册.
为了实现一个安全的系统,其中会话欺骗,以及因此多次投票,难以阅读