热门话题
#
Bonk 生态迷因币展现强韧势头
#
有消息称 Pump.fun 计划 40 亿估值发币,引发市场猜测
#
Solana 新代币发射平台 Boop.Fun 风头正劲
更少更安全:Obsidian 如何降低供应链攻击的风险
供应链攻击是恶意更新,悄悄进入许多应用程序使用的开源代码。以下是我们如何设计 Obsidian,以确保该应用程序是您思想的安全和私密环境。
更少更安全
这听起来可能很明显,但我们降低供应链攻击风险的主要方法是避免依赖第三方代码。与我们类别中的其他应用程序相比,Obsidian 的依赖项数量很少。请查看我们信用页面上的开源库列表。
像 Bases 和 Canvas 这样的功能是从头开始实现的,而不是导入现成的库。这使我们能够完全控制 Obsidian 中运行的内容。
- 对于小型实用函数,我们几乎总是在我们的代码中重新实现它们。
- 对于中型模块,我们会分叉它们,并在许可证允许的情况下将其保留在我们的代码库中。
- 对于像 pdf.js、Mermaid 和 MathJax 这样的较大库,我们包含已知良好、版本锁定的文件,并且仅在偶尔或安全修复发布时进行升级。我们阅读发布说明,查看上游更改,并在切换之前进行彻底测试。
这种方法使我们的依赖图保持浅层,子依赖项很少。较小的表面区域降低了恶意更新潜入的机会。
实际在应用中发布的内容
只有少数几个包是您运行的应用程序的一部分,例如 Electron、CodeMirror、moment.js。其他包帮助我们构建应用程序,并且从不交付给用户,例如 esbuild 或 eslint。
版本固定和锁定文件
所有依赖项都严格版本固定,并与锁定文件一起提交。锁定文件是构建的真实来源,因此我们获得确定性的安装。这为我们在审查更改时提供了简单的审计轨迹。
我们不运行 postinstall 脚本。这可以防止包在安装期间执行任意代码。
缓慢、谨慎的升级
当我们进行依赖项更新时,我们:
...

热门
排行
收藏