изоляция контекста при загрузке локального контента - PullRequest
0 голосов
/ 24 марта 2019

Я прочитал документы по электронной политике безопасности (https://electronjs.org/docs/tutorial/security) и новые значения по умолчанию, установленные для предстоящего электрона 5.x (https://electronjs.org/blog/electron-4-0)) и не смог понять, нужна ли contextIsolation, когда загрузка локального веб-контента (local index.html).

Я понимаю необходимость этого при загрузке удаленного контента, но действительно ли это необходимо при загрузке локального контента? Если да, то как использовать API-интерфейс моста, настроенный в сценарии предварительной загрузки между основным процессом и процессом визуализации, для предоставления API-интерфейса объекту Window процесса визуализации?

1 Ответ

1 голос
/ 25 марта 2019

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

Смысл этого флага в том, чтобы запустить скрипт предварительной загрузки в изолированной среде JavaScript, чтобы на него не влияли какие-либо изменения, злонамеренные или иные, которые страница может вносить в глобальные объекты JavaScript или прототипы объектов.

Например, если моя внешняя страница перезаписывает Date.now:

Date.now = () => return 1;

А ваш предзагрузочный скрипт или API Electron, который вы вызываете, вызывает Date.now(), тогда он будет использовать перезаписанную версию вместо исходной функции.

Флаг contextIsolation смягчает атаки этого типа.

Электрон говорит сами (выделение добавлено):

Включить изоляцию контекста для Удаленный контент

Так что нет, он вам не нужен для локального контента.

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