Почему Firefox вызывает 3-секундную задержку перед установкой дополнений?

54

Я полагаю, что задержка Firefox перед установкой надстроек имеет преимущество с точки зрения безопасности, но я не могу понять, что это такое. (Да, я знаю, что вы можете отключить задержку.)

Если вы ответите на этот вопрос, предоставьте ссылки из списков рассылки Firefox или журналы коммитов.

Натан Еллин
источник
12
Вопрос должен звучать так: «Почему Mozilla единственная, кто делает это?». ИМХО, каждое новое диалоговое окно должно включать кнопки через 1 секунду после их отображения, потому что вы можете случайно нажать на них (или кто-то хочет, чтобы вы нажимали на них без вашего согласия). Я действительно ненавижу, когда я щелкаю где-то, и кнопка появляется там перед тем, как я нажимаю. Это также случается с телефонами, когда кто-то звонит вам прямо в тот момент, когда вы хотите нажать эту кнопку воспроизведения.
Майк
4
«Если вы ответите на этот вопрос, предоставьте ссылки из списков рассылки Firefox или журналы коммитов». Если это ваше требование, то не можете ли вы провести собственный поиск?
KMM
2
Может быть, это не так легко найти, или есть другие вещи, которые нужно учитывать. Может быть, кто-то здесь имел бы больше внутренней информации - кто знает? Это не плохо спрашивать само по себе @Kevin
slhck
Я пытался посмотреть сам, но не смог найти информацию. (Я так и сказал в редакции несколько часов назад, которая была каким-то образом потеряна: superuser.com/users/68351/… )
Натан Йеллин
@aantn Извините, я удалил его, так как он не добавил необходимой информации к вопросу. Обычно мы ожидаем, что люди будут искать в первую очередь, поэтому нет необходимости упоминать об этом :)
slhck

Ответы:

71

Почему?

  • Потому что они хотят, чтобы вы думали о том, что вы делаете
  • Потому что это предотвращает случайные установки
  • Потому что это предотвращает злонамеренные установки

Как вы можете злонамеренно запустить установку?

Вот интересная статья Джесси Рудермана об условиях гонки в диалогах по безопасности :

Другая форма атаки заключается в том, чтобы убедить пользователя дважды щелкнуть определенное место на экране. Это место является местом, где появится кнопка «Да». Первый щелчок запускает диалог; второй щелчок попадает на кнопку «Да». Я сделал демо-версию этой атаки для Firefox и Mozilla.

Решение Firefox, начиная с ошибки 162020 , заключается в отсрочке включения кнопок «Да» / «Установить» до трех секунд после появления диалогового окна. Я считаю, что это единственно возможное исправление, кроме полного отказа ненадежному контенту в возможности поставить диалог. К сожалению, это исправление расстраивает пользователей, которые часто устанавливают расширения.

По сути, все сводится к тому, чтобы предсказать, когда пользователь щелкнет, а затем перехватить этот щелчок в диалоговом окне установки. Рудерман объяснил более краткую игровую ситуацию, подобную этой, в своем отчете об ошибке в Firefox, что в конечном итоге привело к включению периода задержки.

Подводя итог еще раз, его основным пунктом было:

Если я могу контролировать или предсказать, когда и где пользователь будет щелкать, я смогу заставить его установить программное обеспечение .


Есть ли альтернативы задержке?

Период задержки, безусловно, был только одним из способов справиться с этим. Другая могла бы перетасовывать кнопки «Установить», «Отмена» каждый раз, когда вы что-то устанавливаете. Это то, что используется очень часто, но это сбивает с толку пользователя больше, чем помогает.

Другой идеей будет случайное перемещение расположения окна для каждого диалога. Это имеет тот же результат, что и перетасовывание кнопок, а именно - запутывает пользователя.

Кроме того, введение случайности не является окончательным решением. Если для кнопок имеются сочетания клавиш, вы также можете перехватывать нажатия клавиш. Тем не менее, сегодня это больше похоже на устаревшую функцию, так как большинство плагинов в любом случае устанавливаются с официального сайта дополнений Firefox.

slhck
источник
1
Разве разрешения на установку addons.firefox.org не решают эту проблему?
Натан Еллин
Скорее всего. Было бы полезно иметь возможность постоянного принятия (как вы можете с сертификатами) - как правило, это больше похоже на устаревшую «функцию». Но я не пользователь Firefox, поэтому я не могу комментировать это.
Slhck
... классная демка! :)
sebastian_k
Разрешения на установку для отдельного сайта не помогают сами по себе, поскольку вредоносный сайт может заставить вас нажать на кнопку на сайте, которому предоставлены разрешения . (Да, даже при агрессивной защите кликджеков - это не решенная проблема.)
zwol
@ Зак, можете ли вы привести пример для addons.firefox.org?
Натан Еллин