PHP设置安全问题

时间:2017-10-22 14:10:49

标签: php mysql security

我一直在使用谷歌寻找一段时间,但是我们无法找到这个问题的答案。

我正在尝试设置一个网站,在注册时为其帐户设置用户设置安全问题和答案(这部分我可以毫无问题地管理)。我无法弄清楚该怎么做是让网站在用户登录时识别用户的计算机,这样他们每次登录时都不必回答问题。

我无法通过IP地址进行操作,因为有些提供商会经常更改用户的公共IP(我的提供商每小时都会更改一次公共IP)。

有没有办法通过MAC地址或特定机器或设备的某些唯一标识符来实现。那样的话,如果" Joe"创建一个帐户,但他的室友" Bob"试图从同一房屋/公寓中的另一台计算机或设备进入他的帐户,它会向" Bob"提出问题,但不会向" Joe"因为它识别他的设备?

希望我正在做我想要做的事情。

1 个答案:

答案 0 :(得分:2)

  

我正在尝试建立一个网站,让用户在注册时就其帐户设置安全性问题和答案(这部分我可以毫无问题地进行管理)。

这是a bad design,并导致类似the time Governor Sarah Palin's email was hacked via password reset questions的情况。

  

有没有一种方法可以通过其特定机器或设备的MAC地址或某些唯一标识符来实现。

否,您的本地MAC地址不会传输到远程服务器。任何其他此类硬件标识符都容易被欺骗。

  

我不知道该怎么办,就是让网站在用户登录时能够识别用户的计算机,从而使他们不必在每次登录时都回答问题。

在这种情况下,您需要的是long-term authentication cookies的一个微小变体,用于部分验证用户身份,因此他们不需要采取额外的安全措施。

通常,我链接到的设计是用于“在此计算机上记住我”复选框的,这些复选框使网站即使在用户关闭浏览器时也自动登录。但是,您可以将其重新用于解决此类问题。

但是,我强烈建议不要打扰安全性问题。您是否考虑过将两因素身份验证(FIDO U2F或TOTP;从不使用SMS)作为额外的安全层,而不是轻易解决的安全性问题?