为什么 Firefox 在安装附加组件之前强制延迟 3 秒?

为什么 Firefox 在安装附加组件之前强制延迟 3 秒?

我推测 Firefox 在安装附加组件之前的延迟是为了安全,但我实在想不出它到底是什么。(是的,我知道你可以禁用延迟。)

如果您回答这个问题,请提供来自 Firefox 邮件列表或提交日志的参考。

答案1

为什么?

  • 因为他们希望你思考自己在做什么
  • 因为它可以防止意外安装
  • 因为它可以防止恶意触发的安装

如何恶意触发安装?

这是一篇有趣的文章安全对话框中的竞争条件作者:Jesse Ruderman:

另一种攻击形式是说服用户双击屏幕上的某个位置。这个位置恰好是“是”按钮出现的位置。第一次点击会触发对话框;第二次点击会落在“是”按钮上。我做了一个演示Firefox 和 Mozilla 的这次攻击。

Firefox 的解决方案来自错误 162020,就是延迟启用“是”/“安装”按钮直到对话框出现三秒后。我相信这是除了完全拒绝不受信任的内容提出对话框之外唯一可能的修复方法。不幸的是,对于经常安装扩展程序的用户来说,这种修复方法令人沮丧。

基本上,这一切都归结为预测用户何时会点击,然后在安装对话框中拦截该点击。Ruderman 解释了一个更简洁的游戏场景,如下所示在他的错误报告中来自 Firefox,这最终导致了延迟期的加入。

再次总结一下,他的主要观点是:

如果我能控制或预测用户点击的时间和地点,我可以让他们安装软件


还有其他可以替代延迟期限的方法吗?

延期当然只是解决这个问题的一种方法。另一种方法可能是随机按钮每次安装时,都要输入“安装”和“取消”。这是最常用的选项,但它给用户带来的困惑比帮助要多。

另一个想法是移动窗口位置随机地对每个对话框执行此操作。这与打乱按钮顺序的结果相同,即让用户感到困惑。

此外,引入随机性并不是最终的解决方案。如果按钮有键盘快捷键,您也可以拦截按键。话虽如此,但如今它看起来更像是一项遗留功能,因为大多数插件都是从官方 Firefox 附加组件网站安装的。

相关内容