3

我正在为 iOS 开发,我需要使用 API 密钥和秘密向某些 API 发出请求。但是,我不希望它在我的源代码中公开,并且在我推送到我的存储库时泄露了秘密。

这种情况下的最佳做法是什么?将它写在一个单独的文件中,我将包含在 .gitignore 中?

谢谢

4

2 回答 2

1

将它写在一个单独的文件中,我将包含在 .gitignore 中?

不,永远不要写。
这意味着:

  • 你不会在你的 repo 中写下那个秘密(不需要 gitignore 它,或者不用担心错误地添加/提交/推送它)
  • 您不会在本地驱动器上的任何地方写它(无需担心您的计算机被盗用那个“秘密”)

在您的存储库中存储一个脚本,该脚本能够从外部源(从 gi​​t 存储库外部)寻找该秘密并将其加载到内存中
这类似于一个git credential-helperprocess,并且该脚本将启动一个监听进程localhost:port,以便仅在当前会话中需要它时为您提供该“秘密”。
一旦会话完成,就没有留下任何痕迹。
这是管理秘密数据的最佳实践。

git checkout如果您在.gitattributes文件中将其声明为内容过滤器,则可以自动触发该脚本:

内容过滤器

于 2013-05-25T23:14:46.223 回答
1

这是一个非常古老的问题,但如果有人在 google 中看到这个问题,我建议您尝试使用 CloudKit 来存储任何应用程序机密(API 密钥、Oauth 机密)。只有您的 app 可以访问您的 app 容器,Apple 和您的 app 之间的通信是安全的。你可以在这里查看

于 2018-02-16T22:41:59.203 回答