安全指南¶
这是使用 Conan 时一些不完整、初步但非详尽的安全相关建议
避免在 URL 中使用令牌和密码,它们很容易在日志中泄露。例如,如果 recipe 的
source()
方法实现了git clone
,请勿在 URL 中使用 git 凭据,而是使用系统中配置的 ssh-keys。使用tools.get()
和tools.download()
下载 tarball 时也一样。通常,开发者不应在服务器上拥有写入权限,只应拥有下载和安装包的读取权限。只有 CI 应该拥有写入/上传权限。作为例外,可以使用一些“试验场”仓库供开发者与同事共享包以进行调试和测试,但该“试验场”仓库应与正常的测试和生产仓库隔离。
在 CI 中使用权限受限的令牌。如果一个任务只需要读取权限,则只使用具有读取权限的令牌。仅在 CI 管道的“上传”部分使用写入凭据。
使用
conan audit
启用依赖项漏洞检查,请查阅 conan audit 文档在许多生产场景中,强烈建议完全拥有依赖项(包括第三方依赖项)的软件生命周期(SWLC)。因此,在生产环境中使用 ConanCenter 包 一节建议从源代码构建您自己的二进制文件,并将这些二进制文件存储在您自己的私有服务器中,而不是直接从 ConanCenter 下载包。local-recipes-index 特性 的设计就是为了帮助完成这一过程。
为避免受互联网中断以及从互联网下载的 tarball 可能被篡改的影响,可以使用 备份源 特性。