我正在爲iOS開發,我需要使用API密鑰和祕密向某些API發出請求。但是,我不想讓它暴露在我的源代碼中,並且在推送到我的存儲庫時泄露了祕密。iOS應用中使用的API密鑰和機密 - 存儲它們的位置?
這種情況的最佳做法是什麼?寫在一個單獨的文件中,我將包含在.gitignore中?
感謝
我正在爲iOS開發,我需要使用API密鑰和祕密向某些API發出請求。但是,我不想讓它暴露在我的源代碼中,並且在推送到我的存儲庫時泄露了祕密。iOS應用中使用的API密鑰和機密 - 存儲它們的位置?
這種情況的最佳做法是什麼?寫在一個單獨的文件中,我將包含在.gitignore中?
感謝
寫在一個單獨的文件,我會包括的.gitignore?
不,不要寫它永遠。
這意味着:
在您的回購中存儲能夠從外部來源尋求該祕密的腳本(來自git回購之外)並在內存中加載它。
這與git credential-helper
process類似,並且該腳本將啓動一個偵聽localhost:port
的進程,以便在您僅在當前會話中需要時爲您提供「祕密」。
會話完成後,沒有剩餘痕跡。
這是管理祕密數據的最佳實踐。
可以自動觸發git checkout
該腳本,如果你在一個.gitattributes
文件中聲明它作爲一個內容過濾器:
這是一個很古老的問題,但如果有人在谷歌看到了這個我建議你嘗試使用CloudKit來存儲任何應用程序的祕密(API密鑰,Oauth祕密)。只有您的應用可以訪問您的應用容器,Apple和您的應用之間的通信是安全的。 你可以看看here。
我沒有從做你的建議和寫在一個單獨的文件,我不會承諾(因爲它會在gitignore)的差異。 如果我按照你的建議做,我該如何檢索iOS應用程序中這些鍵的值(「在內存中」在這一點上有點模糊,不是?)。謝謝您的回答! – Renan
@Ranan我編輯了我的答案以添加更多詳細信息。 – VonC