显然,某种限制登录尝试的机制是安全必需的。虽然我喜欢两次尝试之间的时间呈指数级增长的概念,但我不确定是否可以存储信息。我也对其他解决方案感兴趣,最好不要包括验证码。
我猜cookie不会工作,因为阻止cookie或自动清除它们,但会话可以工作吗?或者必须将其存储在数据库中?不知道可以/正在使用什么方法,所以我根本不知道什么方法是实用的。
发布于 2009-02-24 05:18:37
使用users表'failed_login_attempts‘和'failed_login_time’中的一些列。第一个参数在每次登录失败时递增,并在成功登录时重置。第二个允许您将当前时间与上次失败的时间进行比较。
您的代码可以在数据库中使用此数据来确定锁定用户的等待时间、允许的登录间隔时间等。
发布于 2009-02-24 05:16:47
假设谷歌已经做了必要的可用性测试(不是一个不公平的假设),并决定使用验证码,我建议使用它们。
当我是一个真正的用户并忘记了我的密码时,增加超时是令人沮丧的(有如此多的网站及其相关的密码经常发生,特别是对我来说)
发布于 2009-02-24 05:17:03
将尝试存储在数据库中是最好的解决方案IMHO,因为它为您提供了安全违规尝试的审计记录。这可能是也可能不是法律要求,具体取决于您的应用程序。
通过记录所有恶意尝试,您还可以收集更高级别的信息,例如,如果请求来自一个IP地址(即某人/某物正在尝试暴力破解攻击),则您可以阻止该IP地址。这可能是非常有用的信息。
一旦你确定了一个阈值,为什么不强制他们请求将电子邮件发送到他们的电子邮件地址(例如,类似于“我忘记了我的密码”),或者你可以使用验证码方法。
https://stackoverflow.com/questions/580534
复制相似问题