安全指南

以下是使用 Conan 时不完整、初步且非详尽的安全相关建议。

  • 避免在 URL 中使用令牌和密码,它们很容易在日志中泄露。例如,如果配方中的 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,可以使用 备份源 功能。