【发布时间】:2021-09-23 20:57:01
【问题描述】:
在我的 iOS 应用程序中,我正在使用具有一些用户名和密码的 Web 服务来访问端点。现在我已经将网络服务的用户名和密码保存在我的 swift 文件中,当我需要使用网络服务时,我正在从 swift 文件中读取凭据并发送到网络服务器。我的问题是将凭据或任何敏感数据保存在 swift 文件中是否安全?有没有办法对 IPA 文件进行逆向工程并读取凭证或任何其他方式来获取 swift 文件中存储的密钥。这对于 android APK 来说是可能的,如果将完整的代码保存在 java 文件中,逆向工程会将完整的代码暴露给攻击者。
我的 swift 文件
class Connection:NSObject {
...
public let pass = "AD%$^%DS78DS"
public let user = "KKKSL"
...
}
【问题讨论】:
-
1. 2号。是的。您可以轻松获取 ipa 文件并打开它
-
谢谢@Paulw11 .. 你能为此目的提出一些安全的做法吗?
-
理想情况下,用户将使用 OAuth 登录以获得使用 API 的令牌。在应用程序中存储硬编码凭据没有真正安全的方法。
-
但是如何将密码输入钥匙串?如果您要创建一个钥匙串项目,那么密码已经需要在您的应用程序中的某个地方
-
绝对没有办法在您的应用程序内存储信息(或将其发送到您的应用程序),以使具有一定技能的用户无法读取信息。如果需要控制,则需要对用户进行身份验证,而不是对应用进行身份验证。如果您正在访问 3rdparty 系统,则需要通过您自己的服务器对其进行路由。无论您如何存储它们,都无法可靠地保护应用程序已知的凭据。我已经进行了一次演讲,其中包括一些你可以做的事情来稍微模糊信息,但这并不是强有力的保护。 youtube.com/watch?v=ziwm8bMKxsw