在登录表单中加入验证码是否不道德?

22

在最近的一个项目中,我在登录表单上放置了验证码测试,以防止可能的暴力攻击。

其他同事的即时反应是要求删除它,说它不适合那个目的,并且在那个地方看到验证码相当奇怪。

我曾在注册、联系、密码恢复表单等地方看到验证码图片。所以我个人认为在那样的地方也放置验证码并不不适当。当然,这显然会降低可用性,但这只是时间和习惯的问题。

如果没有验证码测试,就必须放置某种黑名单/帐户锁定机制,这也有一些缺点。

对于您来说这是一个好选择吗?我是否有点过度依赖验证码,需要某种群体治疗?

提前致谢。


4
不。是的。 (只是回答问题) - Osama Al-Maadeed
4
谢谢您的回答,您让我信服了。我现在要打电话给我的医生…… - azkotoki
1
告诉你的用户要有更好的密码管理习惯,那么验证码就会被移除。 :) 这意味着不再使用 abc123! =p 这样的密码了。 - Tony
6个回答

38

对于某个用户登录尝试失败的情况,只需添加一个验证码测试。这是当前许多网站所采用的方式(例如所有流行的电子邮件服务),而且更少侵入。

只要攻击者不能破解您的验证码,这种方法完全可以防止暴力攻击。


1
是的,很好的观点。只有在登录失败时添加验证码,或者像Facebook一样,如果用户从不寻常的位置登录,则添加验证码。 - Dirk Vollmar
它完全不能阻止暴力攻击,即使攻击者可以轻松破解您的验证码,他也不必这样做。请参见此主题下的其他问题。 - AviD
CAPTCHA在第一次登录尝试时并不必要。甚至第二次也不需要。如果他们在第三次尝试后仍然无法通过,那么请要求他们证明自己不是机器人。在注册表单上使用它们是有意义的,这样机器人就无法创建帐户。或者在匿名评论区域中使用以避免垃圾邮件。我使用的产品是由过于热衷于安全的开发人员制作的,您必须点击Recaptcha,提供用户名和密码并单击登录按钮。非常麻烦。正确提供用户名和密码应该足够了。我曾试图向他们解释这一点。问过他们的银行是否这样做。他们脑残了。不要像他们一样脑残。 - Fauxcuss

9

这并不是道德问题,而是糟糕的可用性。

考虑安全问题:用户会认为登录需要耗费时间,并且会:

  • 更少地使用您的系统
  • 从不注销您的系统并离开未经监督的会话。

考虑其他形式的暴力攻击检测和预防。


5

验证码在登录表单中并不是很传统的选择。传统的防范暴力攻击的方法似乎是锁定账户。正如你所说,它有缺点,例如,如果你的应用程序容易受到账户枚举攻击,则攻击者可以轻松地执行拒绝服务攻击。


或者你可以让暴力攻击者登录到一个虚假的空账户。 - Tadeusz A. Kadłubowski

4
我倾向于同意你的同事们的观点。在您不必授权提交数据的表单上,验证码可能是必要的,否则垃圾邮件机器人会轰炸它们,但我看不出通过将验证码添加到登录表单来防止什么样的滥用?
验证码没有提供任何形式的安全性,就像黑名单之类的其他选项一样。它只是验证用户是一个人,希望用户名/密码字段可以进行验证。
如果你想防止暴力破解攻击,那么几乎任何其他形式的保护都会更有用 - 如果请求太多则限速,或者如果输入错误密码太多次,则禁止IP地址,例如。
另外,我认为您低估了对可用性的影响。许多浏览器提供了许多工具来处理用户名/密码表单,如果添加验证码,所有这些工具都将变得无用。

4
我想回答标题中的问题——道德问题。
在以下情况下,我认为验证码是不道德的:
1. 当应用程序的主要部分和目的本来不会造成这种排斥时,它排除了那些有身体或精神障碍的人参与。
2. 验证码机制向用户展示了超出应用程序通常期望的令人痛苦的语言或图像。
3. 验证码机制以某种方式具有欺骗性或误导性。
如果验证码的目的是因偏见而排除真正有感知能力的机器智能的参与,则也可能被视为不道德。当然,技术尚未发展到这个水平,而且当它成为一个问题时,我认为排除人类的门槛将更加可行和普遍。

-3

很多流行(最常用)的邮件服务器没有它?!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接