我有一堆API密鑰和祕密(條紋,Cloudinary等),目前硬編碼在我的應用程序。哪裏是存儲它們的正確地點?他們是否應該在服務器中,並且我只在我的末端存儲服務器URL(以便如果密鑰更改,應用程序繼續工作)?在Swift上存儲API密鑰的位置?
例如,我有這個在我的應用程序委託文件:
func configureStripe(){
STPPaymentConfiguration.sharedConfiguration().publishableKey = "pk_test_1234rtyhudjjfjjs"
STPPaymentConfiguration.sharedConfiguration().appleMerchantIdentifier = "merchant.com.myapp"
}
是的密鑰一定只能在你的服務器上,而且永遠不會在客戶端代碼中。 –
如果你想將它們存儲在客戶端,我相信使用像'SSKeyChain'這樣的庫會有幫助 – KrishnaCA
我不確定Cloudinary,但是使用Stripe你在客戶端上使用的密鑰是publishableKey。對於與其API的任何交互,這不是通過條帶被認爲是安全的。這就是爲什麼你需要從使用你的其他私鑰的服務器上做所有事情。切勿存儲私人客戶端的任何內容,但如果絕對必要的話,不要將其硬編碼到應用程序中或存儲在plist中。一個選項是從您的應用程序向您的後端發出網絡請求以獲取密鑰,使用SSL並存儲在鑰匙串中。仍然不完全安全,但應該做任何不是非常敏感的事情。 – JustinM