題 為什麼Firefox在安裝附加組件之前會強制延遲3秒?


我認為在安裝附加組件之前Firefox的延遲有一個安全優勢,但對於我的生活,我無法弄清楚它是什麼。 (是的,我知道你可以禁用延遲。)

如果您回答此問題,請提供Firefox郵件列表或提交日誌的參考。


53
2017-08-08 11:48


起源


問題應該是“為什麼Mozilla是唯一一個這樣做的人?”。恕我直言,每個新對話框應該在顯示它們後1秒啟用按鈕,因為您可能會意外地點擊它(或者有人希望您在未經您同意的情況下點擊它)。當我點擊某個地方時,我真的很討厭它,然後在我點擊之前就會產生一個按鈕。當有人在你想要點擊“播放”按鈕的時候給你打電話時,手機也會發生這種情況。 - Mike
“如果你回答這個問題,請提供Firefox郵件列表或提交日誌的參考資料。”如果這是您的要求,那麼您不能自己搜索嗎? - kmm
也許它並不容易找到,或者還有其他一些需要考慮的事情。也許這裡有人會有更多內部信息 - 誰知道?問一下也不錯 本身 @Kevin - slhck
我試著看自己,但我找不到這些信息。 (我在幾個小時前的編輯中這麼說,不知何故丟失了: superuser.com/users/68351/...) - Natan Yellin
@aantn抱歉,我刪除了它,因為它沒有真正為問題添加必要的信息。我們通常希望人們先搜索,所以不需要提及它:) - slhck


答案:


為什麼?

  • 因為他們希望你思考你在做什麼
  • 因為它可以防止意外安裝
  • 因為它可以防止惡意觸發的安裝

你怎麼能惡意觸發安裝?

這是一篇有趣的文章 安全對話中的競爭條件 作者:Jesse Ruderman:

另一種形式的攻擊涉及說服用戶雙擊屏幕上的某個位置。這個位置恰好是出現“是”按鈕的位置。第一次單擊會觸發對話框;第二次點擊落在“是”按鈕上。我製造了一個 演示 對Firefox和Mozilla的攻擊。

Firefox的解決方案來自 bug 162020,是 延遲啟用“是”/“安裝”按鈕 對話框出現後三秒鐘。我相信這是除了完全拒絕不受信任的內容構成對話的能力之外唯一可能的解決方案。不幸的是,對於經常安裝擴展的用戶來說,此修復程序令人沮

基本上,這一切都歸結為預測用戶何時單擊然後在安裝對話框中攔截該單擊。魯德曼解釋了這樣一個更簡潔的遊戲情況 在他的錯誤報告中 來自Firefox,最終導致包含延遲期。

再次總結一下,他的主要觀點是:

如果我可以控製或預測用戶點擊的時間和位置, 我可以讓他們去   安裝軟件


延遲期的任何替代方案?

延遲期當然只是解決這個問題的一種方法。另一個可能是 洗牌按鈕 每次安裝時都要“安裝”,“取消”。這是經常使用的東西,但它比用戶更有困惑。

另一個想法是 移動窗口位置 每個對話框隨機。這與洗牌按鈕具有相同的結果,即使用戶感到困惑。

此外,引入隨機性不是最終的解決方案。如果按鈕有鍵盤快捷鍵,您也可以攔截按鍵。儘管如此,它似乎更像是今天的傳統功能,因為大多數插件都是從官方Firefox附加組件網站安裝的。


71
2017-08-08 12:04



addons.firefox.org的安裝權限不解決這個問題嗎? - Natan Yellin
最可能。這將有助於永久接受(就像您可以使用證書) - 通常它看起來更像是一個傳統的“功能”。但我不是Firefox用戶,所以我無法對此發表評論。 - slhck
......很酷的演示! :) - sebastian_k
每站點安裝權限本身沒有幫助,因為惡意站點可以安排誘騙您單擊按鈕 在已被授予權限的網站上。 (是的,即使使用積極的點擊劫持防禦 - 這不是一個已解決的問題。) - zwol
@Zack,你能為addons.firefox.org舉個例子嗎? - Natan Yellin