Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP登录-为什么使用验证码?_Php_Brute Force - Fatal编程技术网

PHP登录-为什么使用验证码?

PHP登录-为什么使用验证码?,php,brute-force,Php,Brute Force,我已经阅读了一些关于如何开发PHP登录表单的文章,该表单提供了针对暴力攻击的安全性,并推荐使用CAPTCHA。但是为什么呢 如果编写脚本是为了在15分钟内x次失败尝试后锁定用户,那么CAPTCHA提供了什么好处 如果帐户被锁定,这还不够吗?在大多数情况下,在注册阶段使用CAPTCHA更有效,以避免机器人注册和登录。CAPTCHA不是关于破解登录详细信息,而是关于垃圾邮件和机器人。 开放论坛尤其容易受到攻击,因为一个简单的脚本可以加载页面,用垃圾(或智能内容)填充表单,并一次又一次地提交。。。 但

我已经阅读了一些关于如何开发PHP登录表单的文章,该表单提供了针对暴力攻击的安全性,并推荐使用CAPTCHA。但是为什么呢

如果编写脚本是为了在15分钟内x次失败尝试后锁定用户,那么CAPTCHA提供了什么好处


如果帐户被锁定,这还不够吗?

在大多数情况下,在注册阶段使用CAPTCHA更有效,以避免机器人注册和登录。

CAPTCHA不是关于破解登录详细信息,而是关于垃圾邮件和机器人。 开放论坛尤其容易受到攻击,因为一个简单的脚本可以加载页面,用垃圾(或智能内容)填充表单,并一次又一次地提交。。。 但是,要让脚本生成验证码变得非常困难,因此垃圾邮件几乎完全停止,因为人们被迫手动执行。如果在多次登录尝试失败后锁定帐户,那么这就足够了-是的

“如果”是这里的关键部分-验证码和利率限制帐户锁定是另一种选择,您不能同时使用这两种方法

如果您使用验证码挑战,对某些用户来说会很烦人,因为这需要他们付出额外的努力。
如果使用速率限制,合法用户可能会在其帐户受到攻击时被锁定


您只需选择您(或您的用户)更喜欢哪一种。

CAPTCHA用于防止访问您网站的机器人和服务的DDOS攻击,使用验证码作为检查点,以了解其试图访问的人或机器是一个完美的解决方案。如果您担心用户必须输入字符或与验证码交互,则可以使用无验证码或隐藏验证码来检测机器人是否正在使用表单。这通常包括有一个蜜罐(隐藏的输入字段)和跟踪完成表单所需的时间。对于蜜罐,如果字段中输入了任何内容,则拒绝该表单。如果表单填写过快,请拒绝表单。CAPTCHA是一种有缺陷的保护,但它们确实会大大增加机器人成功提交表单的成本(OCR的cpu时间,付费人工服务的实际现金)。在公共服务上天真的“尝试x次后阻止帐户”可能是一场灾难——一个机器人可以在几秒钟内阻止您的所有用户帐户。在专用网络上,我怀疑您是否需要执行以下操作this@Styphon很可能是这样,但所有这些告诉我的是,你从来没有收到过有针对性的攻击。我可以查看“你的来源”网站,找到蜜罐,并告诉我的脚本别管它们。我也可以强制我的脚本减速以满足你的速度陷阱。蜜罐只能有效地阻止一般(而且相当糟糕)脚本和一些网络爬虫,而读取图像的脚本几乎超出了所有人的范围。不会有注册页面。只有特权用户才能添加其他用户。因此,在第二次登录失败后显示验证码可能对用户体验更好,因为前两次不需要验证码。我可以看出,将帐户锁定将是一种多么糟糕的体验。如果所有管理员帐户都被阻止,其中一位DBA将不得不手动登录mysql服务器并清除该标志。事实上,在封闭的(我猜是内联网)环境中,管理员可能会经常收到此类请求,但大部分来自忘记密码的用户。:)我想我可以在5分钟后取下锁,让事情变得更复杂。如果它再次被锁定,在一段时间内的第三个锁定期之后,它将成为管理员必须解锁的永久性锁定。这将减少管理工作:)