2009-11-26 24 views
2

我正在构建一个PHP/MySQL轮询系统,我想知道是否有比设置cookie +保存用户IP地址以及稍后检查更安全的方法。保护PHP/MySQL轮询系统

谢谢。

回答

0

不,只有你可以做的事情来保护投票系统是要求注册或有效的电子邮件地址。

+2

任何人有几百个电子邮件地址的? – 2009-11-26 11:48:22

+0

有效意味着用户必须确认电子邮件中的每个投票,我认为任何人都不会达到这个程度。 – dfilkovi 2009-11-26 12:13:27

+0

你只需要创建一个接受一切的邮件。然后将一些插件添加到您的邮件服务器(或者创建一个轮询您的邮件服务器的应用程序)来解析确认url并在那里启动连接。 – Arkh 2009-11-26 12:43:25

0

除非您准备强制人们创建用户帐户(然后将选票锁定到某个帐户),否则根据我的经验,这几乎是您所能做的。

2

轮询系统的问题在于,您希望用户只能投票一次。除非您要求提供无法伪造的个人信息,否则此问题无法解决。

1

是的,用户/密码是唯一的方法。如果您想在使用用户身份验证时保持简单,请使用Facebook Connect。现在几乎每个人都有FB,并在few minutes你可以运行它。

+0

顺便说一句,IP地址可能会改变。我的ADSL几乎每天都在发生。 – Sergi 2009-11-26 12:04:13

1

我同意以前最安全的是存储投票和用户帐户信息(ID)。

如果你需要简单的投票无需注册唯一的办法是:

  • 在客户端使用的东西更持久(看https://github.com/samyk/evercookie
  • 在服务器端 - 存储有关投票客人的所有可能的信息用户(操作系统,浏览器等)
  • 对此数据执行一些简单的启发式或条件(如果os,IP和某些参数相同,则可能是同一用户)
  • 不允许短时间投票(如操作系统,IP和度量是相同的,并且时间小于X秒)
  • 日志最大样的信息和适应您的系统
  • 正确告知用户什么打开即您的投票中去,是被剥夺了,因为你已经投
  • 拒绝奇怪的投票(没有操作系统等)
  • 在适当的地方使用MySQL索引!
  • 您也可以凑一些信息部分和只搜索相同的哈希值(IP,操作系统,浏览器)