在 Xcode 中保护 API 密钥的最佳/最简单方法是什么? [重复]

问题描述 投票:0回答:2

我正在使用 Swift 开发一个简单的 iOS 应用程序,该应用程序使用我付费的 API。我没有大量的资源,并且尚未找到解决此问题的简单/最新的解决方案。我想保护我的 API 密钥,而不是将密钥直接放在我发出请求的代码中(我听说这是最佳实践)。 保护我的 API 密钥免遭他人拆解并使用我的代码的最简单方法是什么?

我听说过一些关于使用钥匙串的事情,但我不确定这是否是最好的路线。

class APIService {

    static let shared = APIService()
    private let token = "(my token goes here)"

    //...various API request functions
}
ios swift keychain api-key
2个回答
1
投票

没有简单的方法,也没有办法完全保护它们免受攻击者的侵害。 您始终可以进行一些简单的密钥混淆或将它们存储在服务器中,但如果黑客可以对您的代码进行逆向工程,他们很可能会对您的混淆进行逆向工程。

如果有人拿到了你的密钥(数据库备份等),最好制定安全措施。

当我最初为我的一个应用程序研究此主题时,此链接对我有所帮助。


-3
投票
  1. NS用户默认值:
    NSUserDefaults
    对于保存 NSNumbers 或 NSStrings 这样的小数据来说是简单而有效的,甚至可以保存“记住我”选项来保存用户名的状态。
    NSUserDefaults
    无法安全存储,因为它很容易被黑客攻击。
  2. 钥匙扣: 保存令牌、API 密钥的最佳位置。找到下面描述更多的苹果文档,

**“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 存储和检索数据的简单方法

https://stackoverflow.com/a/37539998/1244403

© www.soinside.com 2019 - 2024. All rights reserved.