在登录屏幕上显示验证码是否有帮助?

信息安全 验证 验证码
2021-08-18 00:01:10

我将 recaptcha 引入了系统的登录屏幕。

我的目标是关于安全的事情,比如字典/机器人攻击或其他类型的事情。

用户现在讨厌它,有些人甚至不理解它,我不得不将其删除。

当我环顾四周时,我在登录屏幕上看不到很多系统,大多数时候在其他表单上,比如联系我们,或者有时在你想发帖时在堆栈交换中。

这让我想知道将它放在登录屏幕上是个好主意吗?

4个回答

我见过一些大型系统这样做的方式是仅在连续失败的登录尝试后才需要验证码(即:在有效登录后重置计数)。如果您担心自动破解,您可以将验证码设置为失败次数较多的验证码,例如 20、50、100 次失败尝试。几乎没有合法用户会看到验证码,但自动攻击会受到它的打击。

增加这种复杂性值得吗?安全性和用户体验是权衡。您需要为您的风险状况找到正确的权衡。

登录屏幕上的验证码毫无意义。我并不奇怪你的用户讨厌它。表单上的验证码字段的目的是防止它们被机器人提交。机器人不应该能够通过您的登录屏幕登录,因为它不应该有有效的凭据。如果机器人可以猜出有效凭据,那么您需要增加密码强度。

用户现在讨厌它,有些人甚至不理解它,我不得不将其删除。

这是您必须在可用性和安全性之间做出决定的地方。尽管在您的登录页面上有一个验证码很有用,但它对用户非常不友好。

我最好的建议是将每次无效登录尝试记录到数据库中,并在验证用户身份之前,检查该 IP 是否在过去一小时内尝试登录 X 次。

您还可以向每个登录页面添加某种形式的跨站点请求伪造系统。这意味着每次登录尝试都会生成一个带有令牌的隐藏字段,这意味着攻击者必须发出两个请求才能尝试登录。

添加 Captcha 或 ReCaptcha 不是解决方案,它只是黑客和用户的障碍。

我的眼镜视力很好,有时我几乎看不清图像文字。我想有人否认他们的愿景会被激怒。

你实现的一切都需要有一个特定的目的,否则你最终只会把馅饼扔到天上,这些馅饼最终会直接落在你的用户身上。

这里有一些值得深思的地方:

1

问题

由于自动蛮力尝试,用户帐户被黑客入侵

解决方案

3 次登录失败后帐户现在被锁定

2

问题

所有用户帐户都已泄露,机器人现在正试图暴力破解所有帐户

由于 3 次登录失败,所有帐户在几秒钟内被锁定

解决方案?很多,但我们甚至需要走到这一步吗?这是目前的问题吗?