安全指南

这是一份不完整、初步的,并非详尽无遗的使用 Conan 时的安全相关建议。

  • 避免在 URL 中使用令牌和密码,它们很容易在日志中泄露。例如,如果 recipe 的 source() 方法实现了 git clone,请不要在 URL 中使用 git 凭据,而是使用系统中配置的 ssh 密钥。使用 tools.get()tools.download() 下载 tarball 时也一样。

  • 通常,开发者不应拥有服务器的写入权限,只应拥有下载和安装包的读取权限。只有 CI 才应拥有写入/上传权限。作为例外,可以使用一些“试验场”仓库,供开发者与其他同事共享包用于调试和测试目的,但该“试验场”仓库应与正常的测试和生产仓库隔离。

  • 在 CI 中使用权限受限的令牌。如果一个作业只需要读取权限,请使用只读权限的令牌。仅在 CI 管道的“上传”部分使用写入凭据。

  • 使用 conan audit 启用依赖项漏洞检查,请查阅 conan audit 文档

  • 在许多生产案例中,强烈建议完全拥有依赖项(包括第三方依赖项)的软件生命周期 (SWLC)。因此,在生产环境中使用 ConanCenter 包 部分建议从源代码构建您自己的二进制文件,并将这些二进制文件存储在您自己的私有服务器中,而不是直接从 ConanCenter 下载包。local-recipes-index 功能 旨在帮助完成此过程。

  • 为避免受互联网中断和从互联网下载的 tarball 可能被篡改的影响,可以使用 备份源代码 功能。