我想在用户登录时实施最大登录尝试次数,以防止对登录进行自动暴力攻击。
我可以想到一些如何做到这一点的不同选择,但所有这些选择似乎都留下了很大的安全漏洞。
我有什么方法/选项可以做到这一点?我显然不能使用隐藏字段,我不能使用会话,因为没有。这是什么协议或最佳实践方法。
在执行密码重置或临时停用帐户之前,我正在查看10次尝试。
注意 - 我正在研究用于存储登录量的方法,我如何区分登录尝试等等
答案 0 :(得分:1)
我认为通用模式是在服务器而不是客户端上跟踪失败的登录尝试,并且当服务器记录了帐户被锁定的特定帐户的X次失败时。然后,用户需要通过之前验证的联系机制(电子邮件,电话号码,质询问题等)重置其帐户。
答案 1 :(得分:1)
如果您想阻止用户尝试多个登录名和密码,您需要跟踪ip以及失败的登录尝试次数。 ips将存储在与经过身份验证的用户不同的表中。
如果同一个用户ip有10个无效登录,那么即使他们更改了用户名和密码组合,他们输入也无法登录。
当然他们可以随时更改ip,但是如果你没有告诉他们他们已被跟踪并保持表格正常并且结果相同他们将继续尝试但实际上没有验证任何东西。一切都会像普通用户看到的那样返回无效的凭据。如果你想让他们停止锤击你的服务器你可以设置IIS来阻止他们,但这将导致他们只是切换ips。最终,名单将会用完,他们将会去其他地方。
您也可以在3次尝试通知他们发生无效登录后向用户发送电子邮件,如果不是,则告诉他们执行某些操作。我知道像LogMeIn这样的网站会这样做。