iOS应用中使用的API密钥和机密 - 存储它们的位置?

时间:2013-05-25 22:39:09

标签: ios git api-key

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

此案例的最佳做法是什么?把它写在一个单独的文件中,我将包含在.gitignore中?

由于

2 个答案:

答案 0 :(得分:1)

  

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

不,不要写它。
这意味着:

  • 你不会在你的回购中写下这个秘密(不需要gitignore它,或者担心错误地添加/提交/推送它)
  • 你不要把它写在你本地驱动器的任何地方(不用担心你的计算机被盗了#34;秘密"就此而言)

在您的仓库中存储一个脚本,该脚本能够从外部源(来自git repo外部)寻找该秘密,并将其加载到内存中
这类似于git credential-helper process,该脚本将启动一个过程,监听localhost:port以便提供“秘密”#34;只在您当前会话中需要的时候给您 会话结束后,没有任何痕迹 这是管理秘密数据的最佳实践。

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

content filter

答案 1 :(得分:0)

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