提问者:小点点

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


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

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

class APIService {

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

    //...various API request functions
}

共2个答案

匿名用户

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

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

当我最初为我的一个应用程序研究这个主题时,这个链接帮助了我。

匿名用户

  1. NSUserDefaault:NSUserDefaault对于保存NSNumbers或NSStrings等小数据,甚至保存保存用户名状态的记住我选项都简单有效。NSUserDefaault无法安全存储,因为它很容易被黑客入侵。
  2. 钥匙串:保存令牌、api密钥的最佳位置。找到下面描述更多的苹果留档,

**“代表应用程序和安全服务安全存储小块数据的加密容器。”“简单地说,就是存储在文件系统中的数据库。”**

钥匙扣文档

这是Swift版本的示例,使用KeyChain存储和检索数据的简单方法

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