BrowserView window.open() 漏洞修复
·阅读约 2 分钟
发现了一个代码漏洞,该漏洞允许在子窗口中重新启用 Node。
在打开一个 `BrowserView` 时,如果设置了 `sandbox: true` 或 `nativeWindowOpen: true` 并且 `nodeIntegration: false`,则会创建一个 `webContents`,在该 `webContents` 中可以调用 `window.open`,并且新打开的子窗口将启用 `nodeIntegration`。此漏洞影响所有受支持的 Electron 版本。
缓解措施
我们已发布包含此漏洞修复的 Electron 新版本:`2.0.17`、`3.0.15`、`3.1.3`、`4.0.4` 和 `5.0.0-beta.2`。我们鼓励所有 Electron 开发者立即将其应用更新到最新的稳定版本。
如果由于某种原因您无法升级 Electron 版本,可以通过禁用所有子网页内容来缓解此问题。
view.webContents.on('-add-new-contents', (e) => e.preventDefault());
更多信息
此漏洞由 PalmerAL 发现并负责任地报告给了 Electron 项目。
要了解更多关于保持 Electron 应用安全的最佳实践,请参阅我们的安全教程。
如果您希望报告 Electron 中的漏洞,请发送电子邮件至 security@electronjs.org。