Кажется, существует огромное количество расширений браузера, которые демонстрируют вредоносное поведение. Кроме того, даже действительные расширения могут страдать от уязвимостей в системе безопасности, которые заставляют их вести себя злонамеренно.
Один из способов избежать этой проблемы - это поставить ваше веб-приложение на платформу, такую как NWJS, Electron или аналогичную. Это имеет преимущество в удалении экосистемы расширений, но также страдает рядом недостатков (процесс установки, увеличение потребления ресурсов, увеличение трудозатрат и т. Д.).
Некоторые утверждают, что " В конце концовэто ответственность пользователя, а не вина веб-сайта, что пользователь скомпрометирован". Хотя это и хорошо, те из нас, кто отвечает за программное обеспечение, которое управляет конфиденциальными данными, по-прежнему обязаны защищать.
При написании веб-приложения, которое получит доступ к конфиденциальным данным, существует что-нибудь что можно сделать для защиты от расширений браузера?
Редактировать: Любые креативные решения этой проблемы были бы хороши. В качестве альтернативы, приветствуется также отрицательный результат. Вот некоторые вопросы, которые вытекают из этого вопроса:
- Может ли объект окна быть защищенным или как-то закрытым?
- Существуют ли какие-либо ограничения в JavaScript расширения, который загружает раньше? страница, которая может быть использована в интересах веб-приложения?
- Может ли сопутствующее расширение обнаруживать другие расширения и затем сообщать веб-приложению, что его запуск небезопасен? Или, по крайней мере, уведомить пользователя о возможном злоупотреблении?
- Встраиваются ли фоновые сценарии расширения в iframes и дочерние окна, создаваемые путем вызова window.open? Возможно, веб-приложение заменит объект окна другой безопасной копией объекта окна.
- Возможно, существует какой-нибудь умный способ обнаружить, если сторонний код имеетбыл запущен на странице? Этакий хэш среды JavaScript?