使用php安全投票系统,无需登录

时间:2012-06-27 13:24:57

标签: php cookies ip voting vote

有没有办法让一个合理安全的系统投票而无需登录。我现在使用cookie来设置此人是否已投票,并在数据库中插入用户IP。

如果该用户删除了他的cookie,他将能够再次投票。这就是我检查用户的ip是否存在于数据库中以及该IP是否在过去30秒内投票的原因。这样他就不得不删除他的cookie并更改他的IP地址再次投票。

我知道没有100%的防故障解决方案,但是 有更安全的方法吗?

3 个答案:

答案 0 :(得分:4)

有两种方法可以改善您的结果,但如果您需要,可以自己阅读和判断:

更持久的cookie

Evercookie project,它可以在很多地方存储类似Cookie的信息。删除比普通的cookie要困难得多。

我个人认为这个项目应该被视为概念证明,实际使用它是不道德的

更好的用户识别

您可以使用浏览器指纹识别,而不仅仅是查看IP地址以识别返回的访问者。 EFF用他们的Panopticlick project表明,浏览器版本,操作系统版本,安装附加组件等的组合通常是独一无二的。 Piwik web analytics tool也使用这种用户启发式方法来区分访问者。我不知道实现,但它是FOSS和PHP,所以你应该能够找到那个部分。

答案 1 :(得分:1)

您可以同时使用这两种解决方案 - 但它仍然不是很安全。你可以阻止一个子网进行投票(192.168.1.xxx)以防止动态IP更改,但是你也可以阻止多达254人投票 - 而且它不会阻止代理。 / p>

我看到的一种方法使用了很多让你看起来像是允许重复投票;即:在最终用户端显示他们的重复投票已计算在内,但实际上并没有在您自己的数据库中计算。

但实际上,登录系统是关于这种做法的唯一相对“安全”的方式 - 但如果有人足够坚定,那显然也可以玩游戏。

希望这有帮助。

  • 锐衡

答案 2 :(得分:0)

你可以广告 用户代理(在短时间内,2名冲浪者几乎没有机会完全相同:https://panopticlick.eff.org/index.php?action=log&js=yes) 但又一次'如果某人足够坚定,那显然也可以被游戏化。'

相关问题