在最近的一个项目中,我在登录表单上进行了验证码测试,以阻止可能的暴力攻击。
其他同事的第一反应是要求删除它,说它不适合这个目的,在那个地方看到验证码是相当异国情调的。
我已经在注册,联系人,密码恢复表单上看到验证码的图片,所以我个人认为在这样的地方也放验证码是不合适的。显然,它会消耗一点可用性,但这只是一个时间问题,并逐渐适应它。
在缺乏验证码测试的情况下,人们将不得不加入某种黑名单/帐户锁定机制,这也有一些缺点。
这对你来说是一个好的选择吗?我是不是有点狂热,需要某种集体治疗?
提前谢谢。
发布于 2010-05-04 19:05:35
当给定用户的登录尝试失败时,只需添加CAPTCHA测试即可。这是目前许多网站都在做的事情(例如所有流行的电子邮件服务),而且侵入性要小得多。
然而,只要攻击者不能破解你的验证码,它就能完全挫败暴力攻击。
发布于 2010-05-04 19:04:37
在登录表单中,Captcha不是一个非常传统的选择。针对暴力破解攻击的传统保护措施似乎是帐户锁定。正如您所说,它有它的缺点,例如,如果您的应用程序容易受到帐户枚举的攻击,那么攻击者可以很容易地执行拒绝服务攻击。
发布于 2010-05-04 19:08:11
我倾向于同意你的同事的观点。在不需要授权提交数据的表单上,验证码可能是必要的,因为否则垃圾邮件会轰炸它们,但我看不出您通过将验证码添加到登录表单来防止哪种滥用?
验证码不会提供任何形式的安全性,而您的其他选项,如黑名单,将提供。它只是验证用户是否为人,希望用户名/密码字段能够验证这一点。
如果你想防止暴力攻击,那么几乎任何其他形式的保护都会更有用-例如,如果请求太多,则完全限制请求,或者如果输入错误密码太多次,则禁止IP。
另外,我认为你低估了它对可用性的影响。许多浏览器提供了许多实用程序来处理用户名/密码表单,如果您添加验证码,所有这些实用程序都会变得无用。
https://stackoverflow.com/questions/2764653
复制相似问题