我正在为 iOS 开发,我需要使用 API 密钥和秘密向某些 API 发出请求。但是,我不希望它在我的源代码中公开,并且在我推送到我的存储库时泄露了秘密。
这种情况下的最佳做法是什么?将它写在一个单独的文件中,我将包含在 .gitignore 中?
谢谢
将它写在一个单独的文件中,我将包含在 .gitignore 中?
不,永远不要写。
这意味着:
在您的存储库中存储一个脚本,该脚本能够从外部源(从 git 存储库外部)寻找该秘密并将其加载到内存中。
这类似于一个git credential-helper
process,并且该脚本将启动一个监听进程localhost:port
,以便仅在当前会话中需要它时为您提供该“秘密”。
一旦会话完成,就没有留下任何痕迹。
这是管理秘密数据的最佳实践。
git checkout
如果您在.gitattributes
文件中将其声明为内容过滤器,则可以自动触发该脚本:
这是一个非常古老的问题,但如果有人在 google 中看到这个问题,我建议您尝试使用 CloudKit 来存储任何应用程序机密(API 密钥、Oauth 机密)。只有您的 app 可以访问您的 app 容器,Apple 和您的 app 之间的通信是安全的。你可以在这里查看。