Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
保护PHP/MySQL轮询系统的安全_Php_Mysql - Fatal编程技术网

保护PHP/MySQL轮询系统的安全

保护PHP/MySQL轮询系统的安全,php,mysql,Php,Mysql,我正在构建一个PHP/MySQL轮询系统,我想知道是否有比设置cookie+保存用户IP地址并稍后检查更安全的方法 谢谢。不,要确保投票系统的安全,您唯一能做的就是要求注册或有效的电子邮件地址 根据我的经验,除非你准备强迫人们创建一个用户帐户(然后将投票锁定到一个帐户),否则这几乎是你能做的所有事情。投票系统的问题是你想确保用户只能投票一次。这个问题没有解决办法,除非你要求提供不能伪造的个人信息。是的,用户/通行证是唯一的办法。如果您想在使用用户身份验证时保持简单,请使用Facebook Con

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


谢谢。

不,要确保投票系统的安全,您唯一能做的就是要求注册或有效的电子邮件地址

根据我的经验,除非你准备强迫人们创建一个用户帐户(然后将投票锁定到一个帐户),否则这几乎是你能做的所有事情。

投票系统的问题是你想确保用户只能投票一次。这个问题没有解决办法,除非你要求提供不能伪造的个人信息。

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

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

但是如果您需要无需注册的简单投票,唯一的方法是:

  • 在客户端,使用更持久的东西(查看)
  • 在服务器端-存储有关投票来宾用户的所有可能信息(操作系统、浏览器等)
  • 对该数据执行简单的启发式或条件排序(如果os、IP和某些参数相同,则可能是同一用户)
  • 不允许短时间投票(如果操作系统、IP和度量相同且时间小于X秒)
  • 记录各种信息并调整您的系统
  • 正确地告知用户发生了什么,即您的投票被拒绝,因为您已经投票等
  • 拒绝奇怪的投票(无操作系统等)
  • 在适当的地方使用MySQL索引
  • 您还可以散列部分信息并只搜索相同的散列(IP、操作系统、浏览器)

其他人有数百个电子邮件地址吗?这意味着用户必须确认电子邮件中的每个投票,我认为没有人会达到这种程度。你只需要创建一个接受所有内容的邮件。然后将一些插件添加到邮件服务器(或制作一个应用程序轮询邮件服务器)以解析确认url并在那里启动连接。顺便说一句,IP地址可能会更改。我的ADSL几乎每天都会这样。