我目前负责建立一个轮询系统(使用PHP)。
为了让它尽可能的安全和客观,游客只能投票一次是很重要的。我正在考虑通过访问者的IP来验证投票结果(一个IP只能投一票),也许还会提交一个captcha测试,以确保一旦机器人通过了IP验证,就不会因为某种原因而进入投票。
提前谢谢。
发布于 2009-03-27 12:17:49
当用户是一个不需要登录的公共投票系统时,绝对没有办法确保用户投票一次。
出于几个原因,检查IP不是一个好主意。正如在其他答案中所描述的,很多网络都在一个ip之后,用户只需使用另一个具有不同ip的pc就可以再次投票。
OpenId
使用OpenId识别用户并检查他们是否已经投票。
注册用户
另外,如果用户没有openid帐户,您可以允许他们注册自己。
要实现安全的系统,会话欺骗和多个投票是很困难的阅读这篇文章。
发布于 2009-03-27 12:08:32
您不能创建一个100%安全的投票系统。
但是,您可以使用自动预筛选器+管理员作为postfilter工作流进行尝试:
这种解决方案的一个大缺点是需要管理员。但是-我想-没有完美的解决办法。
发布于 2009-03-27 12:17:42
除非您需要通过CA验证身份,否则您无法确定,每个人只投票一次。这当然是完全过火了,所以真正的问题是:如何使多票更加困难。
如果要使用IP进行验证,不要只使用REMOTE_ADDR,与整个X-Forwarded-For.相结合这样,您就不会阻止人们通过同一个代理进行连接。
https://stackoverflow.com/questions/689453
复制相似问题