Hasty Briefsbeta

双语

Dependencies should be fetched directly from VCS

7 days ago
  • #dependency-management
  • #security-auditing
  • #package-managers
  • Go 的依赖管理使用 URL 直接从版本控制系统获取代码,避免了单独打包发布的步骤,从而增强了安全性。
  • Ruby 及其他包管理器(如 npm)依赖于已发布的软件包(.gem、.tar.gz 等),这些包由于缺乏提交历史且可能被篡改,审计起来较为困难。
  • 审计 Go 依赖更简单:可通过 git 查看提交日志,而审计 RubyGems 则需要下载并比较包文件,这是一个更繁琐的过程。
  • 最近的安全事件(例如 npm 被黑、xz 漏洞利用)通常涉及在软件包发布阶段注入恶意代码,而非源代码仓库本身。
  • 作者建议修改 Ruby 的 Bundler,强制直接从 git 获取依赖,以模仿 Go 的方式提升透明度和审计便捷性。