为何错误请求要花这么长时间?

为何错误请求要花这么长时间?

我注意到其他操作系统也有这种情况,但 Ubuntu Linux 的情况最为明显。每当发出一个好的请求时,它几乎会立即计算出来。但是,每当发出一个错误的请求(错误的密码、不存在的命令等)时,它需要几秒钟才能让我再次尝试输入。这是一种安全措施吗?

答案1

我同意 kyleN 的回答,关于为什么在终端中输入错误命令比启动现有程序花费的时间更长。

然而,输入错误密码后的暂停则完全是另一回事——这种延迟是故意引入的,以防止暴力密码攻击(即每秒尝试数千个密码,直到找到一个匹配的密码)。输入错误密码时增加短暂的延迟不会影响“真实”用户的可用性,但会使此类攻击完全不切实际。所以是的,在这种情况下,这是一种安全措施。

答案2

一般问题的一般答案:只有在搜索所有可能性以寻找匹配项且未找到任何匹配项后,才会将“错误请求”确定为“未找到”。但是,当“找到”某项时,它通常足够具体,可以非常快速地找到,并且在确定“找到”之前不需要检查所有可能性。

答案3

输入错误密码后的延迟是出于安全原因而故意设置的。

在终端中输入错误命令行时出现的延迟是 Ubuntu 的副作用,当命令未找到时会触发一些额外的机制。Ubuntu 不会直接打印“命令未找到”,而是搜索其存储库以查看您输入的命令是否由您当前未安装的程序提供,然后提供有关如何安装它的说明。该搜索可能需要一两秒钟。

相关内容