Можно ли защитить веб-приложения от расширений браузера? - PullRequest
1 голос
/ 16 октября 2019

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

Один из способов избежать этой проблемы - это поставить ваше веб-приложение на платформу, такую ​​как NWJS, Electron или аналогичную. Это имеет преимущество в удалении экосистемы расширений, но также страдает рядом недостатков (процесс установки, увеличение потребления ресурсов, увеличение трудозатрат и т. Д.).

Некоторые утверждают, что " В конце концовэто ответственность пользователя, а не вина веб-сайта, что пользователь скомпрометирован". Хотя это и хорошо, те из нас, кто отвечает за программное обеспечение, которое управляет конфиденциальными данными, по-прежнему обязаны защищать.

При написании веб-приложения, которое получит доступ к конфиденциальным данным, существует что-нибудь что можно сделать для защиты от расширений браузера?


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

  • Может ли объект окна быть защищенным или как-то закрытым?
  • Существуют ли какие-либо ограничения в JavaScript расширения, который загружает раньше? страница, которая может быть использована в интересах веб-приложения?
  • Может ли сопутствующее расширение обнаруживать другие расширения и затем сообщать веб-приложению, что его запуск небезопасен? Или, по крайней мере, уведомить пользователя о возможном злоупотреблении?
  • Встраиваются ли фоновые сценарии расширения в iframes и дочерние окна, создаваемые путем вызова window.open? Возможно, веб-приложение заменит объект окна другой безопасной копией объекта окна.
  • Возможно, существует какой-нибудь умный способ обнаружить, если сторонний код имеетбыл запущен на странице? Этакий хэш среды JavaScript?

1 Ответ

0 голосов
/ 18 октября 2019

Существует (примитивное) решение для обнаружения пользовательских расширений установленных в браузере, оттуда, я думаю, вы можете запретить доступ к вашему веб-приложению, пока пользователь не удалит эти расширения. Он состоит из небольшой базы данных ресурсов (значков). Если javascript может найти эти ресурсы, это означает, что расширение установлено.

CONS: Вы не можете определить, запущены ли расширения, поэтому, если пользовательотключает их, которые не будут обнаружены, и вы все равно получите положительный результат.

Код находится по этой ссылке:

Может ли веб-сайт определить, какие расширения браузера используются?

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

https://blog.jeremiahgrossman.com/2006/08/i-know-what-youve-got-firefox.html

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