我正在使用 Swift 开发一个简单的 iOS 应用程序,该应用程序使用我付费的 API。我没有大量的资源,并且尚未找到解决此问题的简单/最新的解决方案。我想保护我的 API 密钥,而不是将密钥直接放在我发出请求的代码中(我听说这是最佳实践)。 保护我的 API 密钥免遭他人拆解并使用我的代码的最简单方法是什么?
我听说过一些关于使用钥匙串的事情,但我不确定这是否是最好的路线。
class APIService {
static let shared = APIService()
private let token = "(my token goes here)"
//...various API request functions
}
没有简单的方法,也没有办法完全保护它们免受攻击者的侵害。 您始终可以进行一些简单的密钥混淆或将它们存储在服务器中,但如果黑客可以对您的代码进行逆向工程,他们很可能会对您的混淆进行逆向工程。
如果有人拿到了你的密钥(数据库备份等),最好制定安全措施。
NSUserDefaults
对于保存 NSNumbers 或 NSStrings 这样的小数据来说是简单而有效的,甚至可以保存“记住我”选项来保存用户名的状态。 NSUserDefaults
无法安全存储,因为它很容易被黑客攻击。**“An encrypted container that securely stores small chunks of data on behalf of apps and secure services.” "Simply a database stored in the file system.”**
这是 Swift 版本的示例,使用 KeyChain 存储和检索数据的简单方法