2017-02-18 29 views
2

我有一堆API密钥和秘密(条纹,Cloudinary等),目前硬编码在我的应用程序。哪里是存储它们的正确地点?他们是否应该在服务器中,并且我只在我的末端存储服务器URL(以便如果密钥更改,应用程序继续工作)?在Swift上存储API密钥的位置?

例如,我有这个在我的应用程序委托文件:

func configureStripe(){ 
      STPPaymentConfiguration.sharedConfiguration().publishableKey = "pk_test_1234rtyhudjjfjjs"   

STPPaymentConfiguration.sharedConfiguration().appleMerchantIdentifier = "merchant.com.myapp" 
    } 
+1

是的密钥一定只能在你的服务器上,而且永远不会在客户端代码中。 –

+0

如果你想将它们存储在客户端,我相信使用像'SSKeyChain'这样的库会有帮助 – KrishnaCA

+1

我不确定Cloudinary,但是使用Stripe你在客户端上使用的密钥是publishableKey。对于与其API的任何交互,这不是通过条带被认为是安全的。这就是为什么你需要从使用你的其他私钥的服务器上做所有事情。切勿存储私人客户端的任何内容,但如果绝对必要的话,不要将其硬编码到应用程序中或存储在plist中。一个选项是从您的应用程序向您的后端发出网络请求以获取密钥,使用SSL并存储在钥匙串中。仍然不完全安全,但应该做任何不是非常敏感的事情。 – JustinM

回答