2010-05-04 51 views
17

在最近的一个项目中,我对登录表单进行了验证码测试,以阻止可能的蛮力攻击。在登录表单上添加验证码不道德吗?

其他同事的直接反应是要求将其删除,并说这是为了达到这个目的,并且在那个地方看到验证码是非常奇特的。

我已经看到了注册,联系人,密码恢复表单等captcha图像。所以我个人没有看到inapropiate把captcha也放在这样的地方。那么它显然会降低可用性,但这只是一个时间问题,并且已经习惯了。

由于缺乏验证码测试,人们不得不设置某种黑名单/帐户锁定机制,这也有一些缺点。

这是您的不错选择吗?我是否有点疑惑,需要某种群体疗法?

在此先感谢。

+3

是的。 (只是回答问题) – 2010-05-04 11:16:00

+3

感谢下流,你说服了我。我正在打电话给我的医生... – azkotoki 2010-05-04 11:34:35

+0

告诉你的用户有更好的密码习惯,并且验证码将被删除。 :)这意味着没有更多的密码abc123! = p – Tony 2010-05-04 12:40:23

回答

32

只需为给定用户的登录尝试失败时添加CAPTCHA测试。这是很多网站目前所做的(例如所有流行的电子邮件服务),并且侵入性小得多。只要攻击者不能破坏你的验证码,它就完全阻止了蛮力攻击。

+1

是的,好点。仅在失败尝试中添加验证码,或者 - 例如Facebook做的 - 如果用户从一个不寻常的位置登录。 – 2010-05-04 11:15:59

+0

-1。它完全不*阻止蛮力攻击,即使攻击者可以轻易破解你的验证码,他也不会。在这里查看关于这个主题的其他问题 – AviD 2011-01-18 10:59:51

+0

第一次登录尝试不需要验证码。可能不会是第二个。如果他们在三分之一后错过了,请他们证明他们不是机器人。它们在注册表单上有意义,所以漫游器无法创建帐户。或匿名评论区域以避免垃圾邮件。 我使用开发人员过度热心的安全产品,您必须单击一个Recaptcha以及提供您的用户名和密码,然后单击登录按钮。很大的滋扰。适当地提供uname和pw应该是足够的。试图向他们解释这一点。问他们银行是否这样做。他们是braindead。不要脑残。 – MarkS 2016-11-30 01:52:41

5

验证码在登录表单中不是一个非常传统的选择。传统的防止蛮力攻击的保护似乎是账户锁定。正如您所说,它有缺点,例如,如果您的应用程序易受枚举枚举攻击,则攻击者可能很容易执行拒绝服务攻击。

+1

您当然可以锁定临时而非永久 – Henri 2010-05-04 11:20:01

+0

或者您可以让强力攻击者登录到虚假的空帐户。 – 2010-05-06 05:49:51

7

这不是不道德的本身。这是可用性差。

考虑安全隐患:用户会考虑在登录到耗时且会:

  • 不太可能在所有
  • 使用你的系统永远不会登出你的系统,并留下打开的会话无人值守。

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

3

我倾向于同意你的同事。验证码可能需要您无需授权提交数据的表单,因为否则垃圾邮件将炸毁它们,但是我无法通过将验证码添加到登录表单来查看您正在阻止哪种滥用行为?

验证码不提供任何形式的安全性,您的其他选项(如黑名单)的方式会。它只是验证用户是一个人,并希望用户名/密码字段将验证。例如,如果您想防止暴力攻击,那么几乎任何其他形式的保护都会更加有用 - 例如,如果太多请求会触发请求,或者如果输入错误密码的次数太多,则禁止IP。

另外,我认为你低估了对可用性的影响。许多浏览器提供了很多实用程序来处理用户名/密码表单,如果您添加验证码,所有这些实用程序都将变得毫无用处。

-3

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

3

我想解决题目中的问题 - 道德问题。

我会考虑在下列情况下不道德验证码:

  1. 它排除在申请参与那些身体或智力的挑战,当应用程序的主要部分和目的,否则不会做出这样的排除。

  2. 验证码的机制使用户遭受痛苦的语言或图像超出通常在应用程序中预期的情况。

  3. 呈现给用户的验证码机制在某些方面具有欺骗性或误导性。

如果captcha的意图是为了排除非人类对偏见的真实感知机器智能,也可能被认为是不道德的。当然,技术还没有达到这个问题的水平,而且,当它成为一个问题时,我预计不含人门将更加可行和普遍。