我该如何去有关实现一个安全的密码重置功能,而不向用户发送电子邮件? 还有就是,我存储和只有用户应该知道的信息,另一个安全一点,但它似乎没有安全感,只是让用户更新密码,只是因为他们知道一个9位数。
请注意,用户数据存储在一个简单的SQL表由于对我的工作在服务器上真正的数据库用户的限制。
任何输入,将不胜感激。
更新:
使得在OpenID的尝试并记住此服务器不允许PHP(因此,卷曲)作出任何外部请求后,我试图再次用PHP发送邮件。 显然,所有与邮件()在此服务器上我以前可怕的经历已经消失。
感谢您的所有投入,我会考虑的OpenID又在未来。
平底船上的密码问题。 切换至OpenID。 您不必担心密码重置,如果他们想要一个用户只需要一个新的密码。
这是一个双赢的。
通常情况下,识别用户为真正在互联网上需要模型中的“选择加入”,其中用户“选择采用”有自己的密码重置,以及发送电子邮件确认他们要么希望其复位,或者是已经复位和新重置的密码是什么。
事实上,唯一合理的安全的替代品是那些使用类似的方法。 发送他们有数字,等冲电子邮件,短信,他们必须回复,自动拨打电话
我能想到的唯一方法不使用这个系统将是一个安全问题。 银行经常使用这些附加的验证,当用户登录或无法登录正确的次数。 他们有时也用作获取密码的“秘密”代码,但即使如此,它通常通过电子邮件发送给用户,页面上没有显示。
如果没有发送电子邮件您显著限制自己。 其中发送密码重置密码,或者确认新密码到某人的电子邮件地址的好处是你可以依靠的假设,他们是唯一的人访问他们的电子邮件帐户。
这就是说,你可以使用一个“秘密问题”的计划,让别人来重置其密码。 当此人创建自己的帐户,你需要抓住他们的机密问题和答案。 然后,将促使这个问题的用户,只有当他们回答正确允许复位。
我必须提醒你,这是不是从未经授权的访问保护其密码的一个非常好的方法。 对于一篇好文章阅读: http://www.schneier.com/blog/archives/2005/02/the_curse_of_th.html
你不知道谁是试图复位“乔的”密码的方式。 这可能是乔,或者可能是有人冒充乔。
以发送电子邮件的替代方法是要么调用乔的手机之一了一次复位键或发送短信。
呼叫Joe的电话与音频信息很容易与http://www.twilio.com/但任何人可以拿起乔的办公室电话。 所以平时你打电话之前要一个额外的挑战。 例如,一个秘密的问题/答案。 通过使用手机和秘密Q&A,你已经被乔使事情更严厉的坏人,但仍是可行的。
另一个想法是发送复位消息的人乔信任,谁知道乔。 (发送或者通过电子邮件或电话/短信)的这个变体是发送给谁知道乔,比如分配给他的SalesRep,人力资源代表等雇员
使用后:发送一个蜗牛邮件信件在它的复位代码。 需要花费几天到那里,但邮件的盗窃是一个联邦说唱。 见http://www.postalmethods.com/如果有非常坏的可能的负面后果,这可能是一个很好的解决方案。
对于上述的任何人,乔会,当他建立了输入帐户信息。
另一种模式是要求乔打电话到服务台,让人类审问他。
底线是,没有技术是完美的。 请参见Twitter唱到故事: http://www.technewsworld.com/story/67612.html?wlc=1247790901&wlc=1248238327
最后一点:不要忘了反钓鱼。 通常,通过使乔选择照片,这样做一些重要的事情时,该网站会告诉他做。 这个想法是,一个钓鱼网站就无法复制的用户界面,从而提高他可能没有在正确的网站到达乔的怀疑。