我的问题很清楚。我需要保存一些敏感的静态数据。例如,我的服务的URL或加密的密码。现在我有下一个疑问:安全地将这些数据保存在Localizable.strings中吗?
答案 0 :(得分:1)
没有。恶意用户可以在iTunes备份的IPA中轻松看到此信息。但是,用户也可以在应用包中的任何文件中看到此信息。你需要以某种方式加密字符串。棘手的部分是隐藏密钥:以某种方式计算密钥可能是个好主意(你可以在这里有创意)。
另外注意保护您的传输:如果您使用普通HTTP,任何可以使用Wireshark的人都能够看到您的敏感信息。确保您已正确设置HTTPS,并且验证连接时服务器的证书(请搜索StackOverflow)。
答案 1 :(得分:1)
我完全同意@DarkDust。只是为了添加更多东西:
恶意用户可以查看数据,因为他在其中一台设备上进行了越狱。然后他安装了应用程序,可能会获得该应用程序的全部内容。他可能会更改一些代码并运行它。
获取数据的整个过程称为逆向工程。这是一个非常广泛的分支,如果您关心数据安全性,了解基础知识是件好事。
您可以阅读更多有关逆向工程的信息。这本免费的书:https://github.com/iosre/iOSAppReverseEngineering。
最好的黑客总能得到数据,这只是时间问题。对于您,作为开发人员,任务是禁止为经验较少的“黑客”获取数据。
为了使事情变得更加困难,您可以对数据进行模糊处理。
如果您需要在应用程序中保存一些凭据(例如登录令牌),请始终使用钥匙串,而不是任何其他存储。