安全指南

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

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

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

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

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

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

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