Firefox 下载对话框中的保存按钮延迟是一项安全功能吗?它保护什么?

信息安全 网页浏览器 路过下载
2021-08-07 22:03:00

当我单击通过 Firefox 下载文件时,会出现一个对话框窗口,询问我是要将文件保存在某处还是下载后立即打开它。

Firefox 下载对话框的屏幕截图

对话框窗口中的“确定”按钮开始禁用,直到对话框获得焦点大约一秒钟后才启用。该对话框不是模态的,如果我将注意力集中在另一个窗口上,确定按钮将禁用,并且在窗口保持焦点一秒钟之前不会重新启用。

我的伙伴对这个设计感到惋惜,并问我为什么不能直接点击确定立即下载——我回答说我一直认为这是一个安全功能。但是,现在我考虑一下,我不确定它可以防止什么行为。我本以为它可能会通过强制下载窗口保持打开至少足够长的时间以查看发生了什么来阻止某些恶意网站秘密下载文件-但是站点应该可以在后台秘密下载内容反正。无论如何,我认为大多数用户都会在某个时候单击“从现在开始自动执行此操作”框,因此无论如何都不受保护......

那么,这是一项安全功能吗?如果是这样,它可以防止什么?

4个回答

是的,这是一项安全功能,延迟的目的是防止基于欺骗用户输入输入以跳过对话框的攻击,当用户在输入多个按键或鼠标时意外弹出对话框快速连续点击。此博客文章中给出的两个解释该功能的示例是:

  • 要求用户输入单词的验证码only当他们按下时n,会弹出一个保存对话框,然后用户会立即按下l然后y,这是某些浏览器上确定的键盘快捷键,无意中确认下载
  • 说服用户双击屏幕上某处的网页,其定位是当第一次单击后对话框打开时,他们的鼠标指针正好位于“确定”按钮上方,这意味着他们会立即确认。

通过禁用按钮几秒钟,输入无效。

Mozilla 关于该问题的错误报告

假设没有延迟,可执行文件的默认操作是打开它,并且在页面请求文件下载之前有一些延迟。从理论上讲,如果您在对话框弹出的确切时间输入某些内容,您可能会意外运行病毒。非常罕见,但我敢肯定它发生在某个地方的某个人身上。

从用户体验的角度来看,恶意程度较低,当对话框弹出时,用户可能正在按下空格键或 Enter 键,因此接受了默认操作,并且可能是不正确的操作。短暂的延迟可防止用户意外选择错误的选项。

虽然我怀疑这个功能实际上是为了保护任何东西(我宁愿相信我的防病毒软件来完成这项任务),但我发现当 UI 刷新我的输入并确保我不太可能不小心对文件做错事我实际上是想执行一些操作。

其他答案都没有提到一件事:许多用户单击确定并下载而不阅读弹出窗口

如果用户意外下载了恶意文件(或被诱骗),并且OK在没有阅读和检查他们正在下载的文件的情况下点击本能,那么他们可能会错过重要的安全信息,例如大小、文件类型扩展名和位置即将下载的文件。

通过禁用OK几秒钟,Firefox 迫使用户三思而后行并检查他们正在下载的内容。

某些程序可以在您的 Web 浏览器中调用按键。看看VBScript的SendKeys()方法。

此方法将键发送到当前聚焦的窗口,并且可以发送诸如 ALT、TAB 和/或 ENTER 之类的按钮。

在 Windows 窗体应用程序中,恶意开发人员可以实施该SendKeys.Send()方法并做一些坏事,例如将 Alt-tab 切换到 Firefox 并在恶意下载链接上单击“确定”。