Electron 加载本地内容时的上下文隔离

Electron 加载本地内容时的上下文隔离,electron,Electron,我已经阅读了electron安全策略文档()和即将推出的electron 5.x()的新默认值设置,无法确定在加载本地web内容(local index.html)时是否需要contextIsolation 我理解在加载远程内容时需要它,但在加载本地内容时真的需要它吗? 如果是这样,那么应该如何使用在主进程和渲染器进程之间的预加载脚本中配置的桥接api,以便在渲染器进程的窗口对象上公开api?我不是安全专家,但在我看来,如果您从未加载外部内容,那么启用上下文隔离并不会给您带来太多好处 该标志的全

我已经阅读了electron安全策略文档()和即将推出的electron 5.x()的新默认值设置,无法确定在加载本地web内容(local index.html)时是否需要contextIsolation

我理解在加载远程内容时需要它,但在加载本地内容时真的需要它吗?
如果是这样,那么应该如何使用在主进程和渲染器进程之间的预加载脚本中配置的桥接api,以便在渲染器进程的窗口对象上公开api?

我不是安全专家,但在我看来,如果您从未加载外部内容,那么启用上下文隔离并不会给您带来太多好处

该标志的全部要点是在一个隔离的JavaScript环境中运行预加载脚本,因此它不会受到页面对JavaScript全局或对象原型所做的任何更改(恶意或其他)的影响

例如,如果我的外部页面覆盖了日期。现在:

Date.now = () => return 1;
您的预加载脚本或您正在调用的Electron API正在调用
Date.now()
,然后它将使用覆盖版本而不是原始函数

contextIsolation
标志可以减轻这种类型的攻击

电子本身(重点补充):

为远程内容启用上下文隔离


因此,不,本地内容不需要它。

这也是我从文档中了解到的,我想确认一下。根据:在Electron 5中,nodeIntegration和contextIsolation的默认值将分别更改为false和true,因此我希望看到我没有遗漏什么…@AvnerHoffmann是的,他们只是更改了所有默认值,以便Electron应用程序在默认情况下更安全,但在您的情况下,您不需要启用上下文隔离标志