安全指南

在使用 Conan 时,这是一些不完整、初步且非详尽的安全相关建议

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

  • 一般来说,开发人员不应拥有服务器的写权限,而应只有下载和安装包的读权限。只有 CI 应该拥有写/上传权限。作为例外,可以使用一些“沙盒”仓库,开发人员可以用它们来与其他同事共享包以进行调试和测试,但该“沙盒”仓库应与正常的测试和生产仓库隔离。

  • 在 CI 中使用权限受限的令牌。如果一个任务只需要读权限,则使用仅具有读权限的令牌。写凭证应仅在 CI 管道的“上传”部分使用。

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

  • 在许多生产场景中,强烈建议完全掌握依赖项(包括第三方依赖项)的软件生命周期(SWLC)。出于这个原因,在生产环境中使用 ConanCenter 包 部分建议从源代码构建自己的二进制文件,并将这些二进制文件存储在自己的私有服务器上,而不是直接从 ConanCenter 下载包。 本地配方索引功能 就是为了帮助完成这个过程而设计的。

  • 为避免因互联网中断以及从互联网下载的 tarball 可能被篡改而造成的干扰,可以使用 备份源 功能。