跳转到主要内容

国际化更新

·3 分钟阅读

自国际化后的新 Electron 网站上线以来,我们一直在努力使 Electron 的开发体验对英语以外的开发者更加便捷。

因此,我们带来了令人兴奋的国际化更新!


🌐 语言切换

您知道吗?许多阅读翻译文档的人经常会将其与原始英文文档进行交叉参考。他们这样做是为了熟悉英文文档,并避免翻译过时或不准确的情况,这也是国际化文档的一个注意事项。

Language toggle on Electron documentation

为了方便与英文文档进行交叉参考,我们最近发布了一项功能,允许您在 Electron 文档的某个部分之间无缝切换英文和您正在浏览网站的语言。只要您在网站上选择了非英语区域设置,语言切换器就会显示出来。

⚡️ 快速访问翻译页面

New Electron documentation footer in Japanese

在阅读文档时发现错别字或不准确的翻译?您不再需要登录 Crowdin,选择您的区域设置,找到您想修改的文件,等等。取而代之的是,您只需滚动到相关文档的底部,然后点击“翻译此文档”(或您语言中的相应词语)。搞定!您将被直接带到 Crowdin 翻译页面。现在就开始您的翻译吧!

📈 一些统计数据

自从我们公开 Electron 文档的国际化工作以来,我们看到了来自世界各地 Electron 社区成员翻译贡献的巨大增长。截至目前,我们已翻译了1,719,029 个字符串,来自 1,066 位社区翻译者,共计 25 种语言

Translation Forecast provided by Crowdin

这是一张有趣的图表,显示了以当前(截至撰写时过去 14 天的项目活动量)的翻译速度,将项目翻译成每种语言所需的近似时间。

📃 翻译者调查

我们要向所有贡献时间帮助改进 Electron 的人致以巨大的❤️感谢❤️!为了妥善表彰我们翻译社区的辛勤工作,我们创建了一份调查问卷,以收集有关我们翻译者的信息(即他们的 Crowdin 和 Github 用户名之间的映射)。

如果您是我们了不起的翻译人员之一,请花几分钟时间填写此表:https://goo.gl/forms/b46sjdcHmlpV0GKT2

🙌 Node.js 的国际化工作

由于 Electron 国际化计划的成功,Node.js 决定效仿我们使用的模式重构他们的国际化工作!🎉 Node.js 国际化计划现已启动并取得了巨大进展,但您仍然可以在此处阅读有关早期提案及其背后原因的文章。

🔦 贡献指南

如果您有兴趣加入我们使 Electron 更加国际化的努力,我们有一个方便实用的贡献指南来帮助您入门。祝您国际化顺利!📚

Electron 2.0.0

·7分钟阅读

经过四个多月的开发,八个测试版本,以及全球众多应用的分阶段推广测试,Electron 2.0.0 版本现已在 electronjs.org 发布。


发布流程

从 2.0.0 版本开始,Electron 的发布将遵循语义化版本控制。这意味着主版本号将更频繁地递增,并且通常是 Chromium 的重大更新。补丁版本应该更稳定,因为它们将只包含高优先级的错误修复。

Electron 2.0.0 在主要版本发布前的稳定性改进方面也取得了进展。几款大型 Electron 应用程序已将 2.0.0 beta 版本纳入其灰度发布计划,为 Electron 的 beta 系列提供了有史以来最好的反馈循环。

更改 / 新功能

  • Electron 工具链的多个重要部分进行了重大升级,包括 Chrome 61、Node 8.9.3、V8 6.1.534.41、Linux 上的 GTK+ 3、更新的拼写检查器和 Squirrel。
  • MacOS 现在支持 应用内购买#11292
  • 用于加载文件的新的 API。 #11565
  • 用于启用/禁用窗口的新 API。 #11832
  • 新的 `app.setLocale()` API。 #11469
  • 新增支持日志记录 IPC 消息。 #11880
  • 新的菜单事件。 #11754
  • 向 `powerMonitor` 添加了一个 `shutdown` 事件。 #11417
  • 添加 `affinity` 选项,用于将多个 `BrowserWindow` 集合到单个进程中。 #11501
  • 添加了 `saveDialog` 列出可用扩展名的功能。 #11873
  • 支持其他通知操作 #11647
  • 能够设置 macOS 通知关闭按钮的标题。 #11654
  • 为 `menu.popup(window, callback)` 添加了条件。
  • 触控栏项目的内存改进。 #12527
  • 改进了安全建议清单。
  • 添加应用程序范围的安全范围书签。 #11711
  • 添加了在渲染器进程中设置任意参数的功能。 #11850
  • 为格式选择器添加了辅助视图。 #11873
  • 修复了网络代理竞态条件。 #12053
  • 放弃对 Linux 上的 `mips64el` 架构的支持。Electron 需要 C++14 工具链,但该架构在发布时无法获得。我们希望将来重新添加支持。

API 重大更改

  • 移除了 已弃用的 API,包括
    • 更改了 `menu.popup` 的签名。 #11968
    • 移除了已弃用的 `crashReporter.setExtraParameter` #11972
    • 移除了已弃用的 `webContents.setZoomLevelLimits` 和 `webFrame.setZoomLevelLimits`。 #11974
    • 移除了已弃用的 `clipboard` 方法。 #11973
    • 移除了 `tray.setHighlightMode` 的布尔参数支持。 #11981

Bug 修复

  • 更改为确保 `webContents.isOffscreen()` 始终可用。 #12531
  • 修复了当 DevTools 未分离并获得焦点时 `BrowserWindow.getFocusedWindow()` 的问题。 #12554
  • 修复了在预加载路径包含特殊字符的沙箱渲染器中预加载未加载的问题。 #12643
  • 根据文档修正了 `allowRunningInsecureContent` 的默认值。 #12629
  • 修复了 `nativeImage` 的透明度问题。 #12683
  • 修复了 `Menu.buildFromTemplate` 的问题。 #12703
  • 确认 `menu.popup` 选项是对象。 #12330
  • 消除了新进程创建和上下文释放之间的竞态条件。 #12361
  • 更新了更改 `BrowserView` 时的拖放区域。 #12370
  • 修复了在获得焦点时菜单栏切换 `alt` 键的检测。 #12235
  • 修复了 Webview 中的错误警告。 #12236
  • 修复了从父窗口继承 `show` 选项的问题。 #122444
  • 确保 `getLastCrashReport()` 确实是最后一个崩溃报告。 #12255
  • 修复了在网络共享路径上 `require` 的问题。 #12287
  • 修复了上下文菜单点击回调。 #12170
  • 修复了弹出菜单位置。 #12181
  • 改进了 libuv 循环清理。 #11465
  • 修复了 `hexColorDWORDToRGBA` 处理透明颜色的问题。 #11557
  • 修复了 `getWebPreferences` API 中的空指针解引用问题。 #12245
  • 修复了菜单代理中的循环引用。 #11967
  • 修复了 `net.request` 的协议过滤。 #11657
  • WebFrame.setVisualZoomLevelLimits 现在设置用户代理缩放约束 #12510
  • 为 webview 选项设置了适当的默认值。 #12292
  • 改进了活跃度支持。 #12157 #12171 #11886
  • 修复了单例 fixture 中的计时问题。
  • 修复了 NotifierSupportsActions() 中损坏的生产缓存
  • 使 MenuItem 角色兼容 camelCase。 #11532
  • 改进了触控栏更新。 #11812, #11761
  • 移除了多余的菜单分隔符。 #11827
  • 修复了蓝牙选择器 bug。关闭 #11399
  • 修复了 macOS 全屏切换菜单项标签。 #11633
  • 改进了窗口停用时工具提示的隐藏。 #11644
  • 迁移了已弃用的 web-view 方法。 #11798
  • 修复了从 browserview 打开的窗口的关闭问题。 #11799
  • 修复了蓝牙选择器 bug。 #11492
  • 更新以使用任务调度程序处理 `app.getFileIcon` API。 #11595
  • 更改为即使在屏幕外渲染时也触发 `console-message` 事件。 #11921
  • 修复了使用 `WebContents.downloadURL` 从自定义协议下载的问题。 #11804
  • 修复了透明窗口在开发者工具分离时失去透明度的问题。 #11956
  • 修复了 Electron 应用程序取消重启或关闭的问题。 #11625

macOS

  • 修复了触控栏项目重复使用时的事件泄漏。 #12624
  • 修复了暗黑模式下的托盘高亮显示。 #12398
  • 修复了异步对话框阻塞主进程的问题。 #12407
  • 修复了 `setTitle` 托盘崩溃问题。 #12356
  • 修复了设置 dock 菜单时的崩溃。 #12087

Linux

  • 更好的 Linux 桌面通知。 #12229 #12216 #11965 #11980
  • 对菜单提供更好的 GTK+ 主题支持。 #12331
  • 在 Linux 上优雅退出。 #12139
  • 使用应用程序名称作为托盘图标的默认工具提示。 #12393

Windows

  • 添加了对 Visual Studio 2017 的支持。 #11656
  • 修复了异常传递给系统崩溃处理程序的问题。 #12259
  • 修复了最小化窗口隐藏工具提示的问题。 #11644
  • 修复了 `desktopCapturer` 以捕获正确屏幕的问题。 #11664
  • 修复了 `disableHardwareAcceleration` 与透明度的问题。 #11704

下一步计划

Electron 团队正在努力支持更新版本的 Chromium、Node 和 V8。敬请期待 3.0.0-beta.1!

让开源应用自动更新更简单

·3 分钟阅读

今天,我们发布了一个免费、开源、托管的更新网络服务和配套的npm 包,旨在为开源 Electron 应用提供便捷的自动更新功能。这是我们赋能应用开发者,让他们能够减少对部署的关注,更多地投入到为用户开发高质量体验的一步。


The new updater module in action

让生活更轻松

Electron 提供了一个 autoUpdater API,它允许应用程序从远程端点获取元数据以检查更新,在后台下载更新,并自动安装它们。

对许多 Electron 应用开发者来说,启用这些更新一直是部署过程中的一个繁琐步骤,因为这需要部署和维护一个仅用于提供应用版本历史元数据的 Web 服务器。

今天,我们宣布一项新的即插即用解决方案,用于自动应用更新。如果您的 Electron 应用托管在公开的 GitHub 仓库中,并且您使用 GitHub Releases 来发布构建版本,那么您就可以使用此服务为您的用户提供持续的应用更新。

使用新模块

为了最大限度地减少您的配置,我们创建了 update-electron-app,这是一个 npm 模块,它与新的 update.electronjs.org 网络服务集成。

安装模块

npm install update-electron-app

在您的应用的主进程的任何位置调用它

require('update-electron-app')();

就是这样!该模块将在应用启动时检查更新,之后每十分钟检查一次。找到更新后,它将在后台自动下载,并在更新准备就绪时显示一个对话框。

迁移现有应用

已经使用 Electron 的 autoUpdater API 的应用程序也可以使用这项服务。为此,您可以自定义 update-electron-app 模块或直接与 update.electronjs.org 集成

替代方案

如果您正在使用 electron-builder 来打包您的应用程序,您可以使用其内置的更新器。有关详细信息,请参阅 electron.build/auto-update

如果您的应用程序是私有的,您可能需要运行自己的更新服务器。为此有许多开源工具,包括 Zeit 的 Hazel 和 Atlassian 的 Nucleus。有关更多信息,请参阅 部署更新服务器 教程。

致谢

感谢 Julian Gruber 帮助设计和构建这个简单且可扩展的网络服务。感谢 Zeit 的同事们提供的开源 Hazel 服务,我们从中获得了设计灵感。感谢 Samuel Attard 的代码审查。感谢 Electron 社区帮助测试这项服务。

🌲 祝愿 Electron 应用拥有一个常青的未来!

Electron 2 新功能:应用内购买

·阅读时间 2 分钟

新的 Electron 2.0 版本系列 集成了了大量新功能和修复。此主要新版本的一个亮点是新增了用于 Apple Mac App StoreinAppPurchase API


应用内购买允许用户直接在应用内购买内容或订阅。这为开发者提供了一种简单的方式来采用 免费增值商业模式,在这种模式下,用户下载应用无需付费,并可以购买可选的应用内购项目以获取高级功能、额外内容或订阅。

此新 API 是由社区贡献者 Adrien Fery 添加到 Electron 中的,以支持 Amanote 的应用内购买功能。Amanote 是一款用于讲座和会议的笔记 Electron 应用。Amanote 可免费下载,允许用户在 PDF 中添加清晰的结构化笔记,并提供数学公式、绘图、音频录制等功能。

自从为 Amanote 的 Mac 版本添加了应用内购买支持后,Adrien 注意到 **销售额增加了 40%**!

入门

新的 inAppPurchase API 已经登陆最新的 Electron beta 版。

npm i -D electron@beta

该 API 的文档可以在 GitHub 上找到,Adrien 还很贴心地撰写了一篇关于如何使用该 API 的教程。要开始为您的应用添加应用内购买功能,请参阅教程

更多 针对该 API 的改进 正在进行中,并将很快在即将发布的 Electron beta 版本中推出。

Windows 可能是下一个

接下来,Adrien 希望通过在 Electron 中添加对 Microsoft Store 应用内购买的支持,为 Amanote 开辟新的收入渠道。敬请关注相关动态!

Webview 漏洞修复

·阅读时间 2 分钟

已发现一个漏洞,该漏洞允许在某些禁用 Node.js 集成的 Electron 应用程序中重新启用 Node.js 集成。该漏洞已被分配 CVE 标识符 CVE-2018-1000136


受影响的应用程序

如果满足以下所有条件,则应用程序受影响:

  1. 运行 Electron 1.7、1.8 或 2.0.0-beta 版本
  2. 允许执行任意远程代码
  3. 禁用 Node.js 集成
  4. 未在其 webPreferences 中显式声明 webviewTag: false
  5. 未启用 nativeWindowOption 选项
  6. 未拦截 new-window 事件并手动覆盖 event.newGuest,而未使用提供的选项标签

尽管这似乎只影响少数 Electron 应用程序,但我们仍鼓励所有应用程序作为预防措施进行升级。

缓解措施

此漏洞已在今日发布的 1.7.131.8.42.0.0-beta.5 版本中得到修复。

无法升级应用程序 Electron 版本的开发者可以通过以下代码缓解此漏洞:

app.on('web-contents-created', (event, win) => {
win.on(
'new-window',
(event, newURL, frameName, disposition, options, additionalFeatures) => {
if (!options.webPreferences) options.webPreferences = {};
options.webPreferences.nodeIntegration = false;
options.webPreferences.nodeIntegrationInWorker = false;
options.webPreferences.webviewTag = false;
delete options.webPreferences.preload;
},
);
});

// and *IF* you don't use WebViews at all,
// you might also want
app.on('web-contents-created', (event, win) => {
win.on('will-attach-webview', (event, webPreferences, params) => {
event.preventDefault();
});
});

进一步信息

此漏洞由 Trustwave SpiderLabs 的 Brendan Scarvell 发现并负责任地报告给 Electron 项目。

要了解有关保护您的 Electron 应用安全的最佳实践,请参阅我们的安全教程

如果您希望报告 Electron 中的漏洞,请提交 GitHub 安全咨询

请加入我们的 邮件列表,以接收有关发布和安全更新的通知。

网站小问题

·阅读时间 2 分钟

上周,electronjs.org 网站出现了几分钟的宕机。如果您受到了这些短暂中断的影响,我们对此造成的不便深表歉意。经过今天的调查,我们已诊断出根本原因并已部署了修复程序


为了防止将来发生此类宕机,我们已在我们的应用程序上启用了Heroku 阈值警报。一旦我们的 Web 服务器累积了超出特定阈值的失败请求或响应缓慢,我们的团队就会收到通知,以便我们快速解决问题。

支持所有语言的离线文档

下次您在飞机上或地下的咖啡店里开发 Electron 应用程序时,您可能需要一份文档副本以供离线参考。幸运的是,Electron 的文档有超过 20 种语言的 Markdown 文件版本。

git clone https://github.com/electron/electron-i18n
ls electron-i18n/content

带 GUI 的离线文档

devdocs.io/electron 是一个方便的网站,它不仅为 Electron,还为 JavaScript、TypeScript、Node.js、React、Angular 等许多其他项目存储文档,以便离线使用。当然,也有一个 Electron 应用程序可供选择。请在 Electron 网站上查看devdocs-app

devdocs-app

如果您喜欢在不使用鼠标或触摸板的情况下安装应用程序,可以试试Electron Forgeinstall 命令。

npx electron-forge install egoist/devdocs-app

协议处理器漏洞修复

·阅读时间 2 分钟

我们发现了一个远程代码执行漏洞,它会影响使用自定义协议处理程序的 Electron 应用。此漏洞已被分配 CVE 标识符 CVE-2018-1000006


受影响的平台

在 Windows 上运行并注册为协议(例如 myapp://)的默认处理程序的 Electron 应用程序存在漏洞。

此类应用可能会受到影响,无论协议是如何注册的,例如使用原生代码、Windows 注册表,还是 Electron 的 app.setAsDefaultProtocolClient API。

macOS 和 Linux **不受**此问题影响。

缓解措施

我们已经发布了包含此漏洞修复的 Electron 新版本:1.8.2-beta.51.7.121.6.17。我们敦促所有 Electron 开发者立即将其应用更新到最新的稳定版本。

如果由于某种原因您无法升级 Electron 版本,您可以在调用 app.setAsDefaultProtocolClient 时将 -- 作为最后一个参数附加,这会阻止 Chromium 解析更多选项。双破折号 -- 表示命令选项的结束,之后只接受位置参数。

app.setAsDefaultProtocolClient(protocol, process.execPath, [
'--your-switches-here',
'--',
]);

有关更多详细信息,请参阅 app.setAsDefaultProtocolClient API。

要了解有关保护您的 Electron 应用安全的最佳实践,请参阅我们的安全教程

如果您希望报告 Electron 中的漏洞,请提交 GitHub 安全咨询

Electron 2.0 及未来 - 语义化版本

·一分钟阅读

Electron 的新主要版本正在开发中,随之而来的是我们版本控制策略的一些变化。从 2.0.0 版本开始,Electron 将严格遵守语义化版本控制。


这一变化意味着您会更频繁地看到主版本号的更新,并且这通常是对 Chromium 的重大更新。补丁版本也将更加稳定,因为它们现在只包含错误修复,而没有新功能。

主版本号递增

  • Chromium 版本更新
  • Node.js 主版本更新
  • Electron 破坏性 API 更改

次要版本号递增

  • Node.js 次要版本更新
  • Electron 非破坏性 API 更改

补丁版本号递增

  • Node.js 补丁版本更新
  • 与修复相关的 Chromium 补丁
  • Electron 错误修复

由于 Electron 的 semver 范围现在将更有意义,我们建议使用 npm 默认的 --save-dev 标志来安装 Electron,它会在版本号前加上 ^,让您安全地及时更新次要版本和补丁版本。

npm install --save-dev electron

对于仅对错误修复感兴趣的开发者,您应该使用波浪线 semver 前缀,例如 ~2.0.0,它永远不会引入新功能,只进行修复以提高稳定性。

更多详情,请参阅 electronjs.org/docs/tutorial/electron-versioning

Electron 的新国际化网站

·7分钟阅读

Electron 的新网站地址是 electronjs.org!我们用 Node.js Web 服务器替换了之前的静态 Jekyll 网站,这为我们提供了国际化网站的灵活性,并为更多令人兴奋的新功能铺平了道路。


🌍 翻译

我们已经开始了网站国际化的进程,目标是让全球开发者都能轻松进行 Electron 应用开发。我们正在使用一个名为 Crowdin 的本地化平台,它集成了 GitHub,可以在内容被翻译成不同语言时自动打开和更新拉取请求。

Electron Nav in Simplified Chinese

尽管我们在此之前一直默默地进行这项工作,但已有超过 75 名 Electron 社区成员自发地发现了这个项目,并加入了国际化网站和将 Electron 文档翻译成 20 多种语言的努力。我们看到了来自世界各地人们的 每日贡献,其中法语、越南语、印度尼西亚语和中文等语言的翻译处于领先地位。

要选择您的语言并查看翻译进度,请访问 electronjs.org/languages

Translations in progress on Crowdin

如果您精通多种语言,并有兴趣帮助翻译 Electron 的文档和网站,请访问 electron/electron-i18n 仓库,或者直接在 Crowdin 上进行翻译,您可以使用您的 GitHub 账户登录。

目前 Crowdin 上为 Electron 项目启用了 21 种语言。添加更多语言支持很容易,如果您有兴趣帮助翻译但没有看到您的语言列表,请 告诉我们,我们会将其启用。

原始翻译文档

如果您希望阅读原始 Markdown 格式的文档,现在可以用任何语言进行阅读

git clone https://github.com/electron/electron-i18n
ls electron-i18n/content

应用页面

从今天开始,任何 Electron 应用都可以轻松地在 Electron 网站上拥有自己的页面。例如,可以查看 Etcher1ClipboardGraphQL Playground,这些应用在此处的日文版网站上有所展示。

GraphQL Playground

市面上存在一些令人惊叹的 Electron 应用,但它们并不总是容易找到,而且并非所有开发者都有时间和资源来构建一个合适的网站来推广和分发他们的应用。

只需一个 PNG 图标文件和少量的应用元数据,我们就能收集到关于给定应用的许多信息。利用从 GitHub 收集的数据,应用页面现在可以显示每个具有公共存储库的应用的截图、下载链接、版本、发布说明和 README。通过提取每个应用图标的颜色,我们可以生成 醒目且易于访问的颜色,为每个应用页面提供一些视觉上的区分。

现在的 应用索引页 还包含类别和关键字过滤器,可以找到有趣的应用,例如 GraphQL GUIp2p 工具

如果您有想要在网站上展示的 Electron 应用,请在 electron/electron-apps 仓库中提交一个拉取请求。

使用 Homebrew 一行安装

macOS 的 Homebrew 包管理器有一个名为 cask 的子命令,通过在终端中执行单个命令,可以轻松安装桌面应用,例如 brew cask install atom

我们已经开始收集流行的 Electron 应用的 Homebrew cask 名称,现在将在每个具有 cask 的应用页面上显示安装命令(针对 macOS 用户)。

Installation options tailored for your platform: macOS, Windows, Linux

要查看所有具有 homebrew cask 名称的应用,请访问 electronjs.org/apps?q=homebrew。如果您知道我们尚未索引的其他带有 cask 的应用,请添加它们!

🌐 新域名

我们已将网站从 electron.atom.io 迁移到一个新域名:electronjs.org

Electron 项目诞生于 Atom 内部,Atom 是 GitHub 基于 Web 技术构建的开源文本编辑器。Electron 最初被称为 atom-shell。Atom 是第一个使用它的应用,但很快人们就意识到这个神奇的 Chromium + Node 运行时可以用于各种不同的应用。当 Microsoft 和 Slack 等公司开始使用 atom-shell 时,项目需要一个新名字就变得显而易见了。

于是“Electron”诞生了。2016年初,GitHub 组建了一个新团队,专门负责 Electron 的开发和维护,使其独立于 Atom。自那时以来,Electron 已被成千上万的应用开发者采用,现在被许多大公司依赖,其中许多公司拥有自己的 Electron 团队。

支持 Atom 和 GitHub Desktop 等 GitHub 的 Electron 项目仍然是我们的团队的重点,但通过迁移到新域名,我们希望进一步明确 Atom 和 Electron 之间的技术区别。

🐢🚀 Node.js 无处不在

之前的 Electron 网站是用流行的 Ruby 静态网站生成器 Jekyll 构建的。Jekyll 是构建静态网站的优秀工具,但网站已经开始超出它的能力范围。我们希望获得更动态的功能,例如正确的重定向和动态内容渲染,因此 Node.js 服务器是显而易见的选择。

Electron 生态系统包含用许多不同编程语言编写的组件的项目,从 Python 到 C++ 再到 Bash。但 JavaScript 是 Electron 的基础,也是我们社区中最常用的语言。

通过将网站从 Ruby 迁移到 Node.js,我们旨在降低希望为网站做出贡献的人的入门门槛。

⚡️ 更轻松的开源参与

如果您在系统上安装了 Node.js (8 或更高版本) 和 git,您可以轻松地在本地运行该网站。

git clone https://github.com/electron/electronjs.org
cd electronjs.org
npm install
npm run dev

新网站托管在 Heroku 上。我们使用部署管道和 Review Apps 功能,该功能会自动为每个拉取请求创建一个运行中的应用副本。这使得审阅者可以轻松地在网站的实时副本中查看拉取请求的实际效果。

🙏 感谢贡献者

我们要特别感谢世界各地所有贡献了自己的时间和精力来帮助改进 Electron 的人士。开源社区的热情对 Electron 的成功起到了不可估量的作用。谢谢!

Thumbs up!

Chromium RCE 漏洞修复

·一分钟阅读

在 Google Chromium 中发现了一个远程代码执行漏洞,该漏洞会影响所有最新版本的 Electron。任何访问远程内容的 Electron 应用都容易受到此漏洞的攻击,无论 沙箱选项 是否已启用。

我们发布了两个新版本的 Electron:1.7.81.6.14,它们都包含对此漏洞的修复。我们敦促所有 Electron 开发人员立即将其应用程序更新到最新的稳定版本。

npm i electron@latest --save-dev

要了解有关保护您的 Electron 应用安全的最佳实践,请参阅我们的安全教程

如果您希望报告 Electron 中的漏洞,请提交 GitHub 安全咨询