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

Nat*_*lin 54 firefox

我认为 Firefox 在安装附加组件之前的延迟有安全优势,但对于我的生活,我无法弄清楚它是什么。(是的,我知道您可以禁用延迟。)

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

slh*_*hck 71

为什么?

  • 因为他们想让你想想你在做什么
  • 因为它可以防止意外安装
  • 因为它可以防止恶意触发的安装

如何恶意触发安装?

这是Jesse Ruderman撰写的关于安全对话框中竞争条件的有趣文章:

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

Firefox 的解决方案是从bug 162020 开始延迟启用“是”/“安装”按钮,直到对话框出现后三秒。我相信这是唯一可能的解决方法,而不是完全拒绝不受信任的内容构成对话的能力。不幸的是,这个修复对于经常安装扩展的用户来说很令人沮丧。

基本上,这一切都归结为预测用户何时单击,然后在安装对话框中拦截该单击。Ruderman在他来自 Firefox 的错误报告中解释了这样一个更简洁的游戏情况,最终导致包含延迟期。

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

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


延迟期有什么替代方案吗?

延迟期当然只是处理这个问题的一种方式。另一个可能是在每次安装某些东西时移动“安装”、“取消”按钮。这是经常使用的东西,但它使用户感到困惑而不是帮助。

另一个想法是为每个对话框随机移动窗口位置。这与洗牌按钮的结果相同,即使用户感到困惑。

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