我有一堆API密钥和秘密(Stripe,Cloudinary等),目前在我的应用程序中进行了硬编码。存放它们的正确位置在哪里?它们应该在服务器中吗?我只是将服务器URL存储在我的最后(如果密钥更改,应用程序将继续工作)?
例如,我在我的app委托文件中有这个:
func configureStripe(){
STPPaymentConfiguration.sharedConfiguration().publishableKey = "pk_test_1234rtyhudjjfjjs"
STPPaymentConfiguration.sharedConfiguration().appleMerchantIdentifier = "merchant.com.myapp"
}
没有最好的办法。这取决于很多事情。看看这个答案 - https://stackoverflow.com/a/14865695/1760199,并为您选择最方便的方式。
在Stripe的情况下,Stripe的设计考虑到这一点并不重要,因此他们承担了PCI合规性的财务责任。他们有更复杂的方法来验证用户和限制访问。
最佳做法是将字符串api url以纯文本形式放在某个类或控制器中,不放入信息。
我使用帮助类:
class ApiUrl
{
static var api = "www.api.com/api/"
}
let api = ApiUrl.api