iPhone SDK:在代码中存储用户名和密码

时间:2010-05-24 16:28:43

标签: iphone ftp passwords

在我的应用中,用户可以将文件上传到ftp服务器。要打开连接并写入服务器,我需要使用用户名和密码。在代码中使用FTP用户名和密码看起来像是一个安全问题。

有人可以告诉我如何将其安全地存储在我的代码中并使用它连接到服务器?

非常感谢!

3 个答案:

答案 0 :(得分:3)

  

拥有FTP用户名和密码   代码看起来像是一个安全问题。

那是因为它是: - )

  

有人可以告诉我我该怎么办   安全地将它存储在我的代码中并使用   它连接到服务器?

没有办法这样做 - 你在这里寻找永久运动机器的安全等价物。你所做的任何事情都将通过默默无闻来实现安全,并将进行逆向工程。此外,当您在代码中嵌入秘密时,任何失败都将是灾难性的,并且没有简单的方法可以恢复。

您希望使用这些凭据实现什么目标?您是否希望强制仅使用您的代码访问服务器?如果是这样,这也是一个不可能的任务,你再次忘记尝试它。

您最有可能最好尝试对用户进行身份验证,即让他们使用单独的用户名和密码 - 这实际上取决于您的实际业务级别安全要求。

答案 1 :(得分:1)

如果这是FTP,那么您将通过网络发送未加密的凭据。如果您希望保护这些凭据,那么您已经输了,因为任何有兴趣的人都可以轻松地从无线网络中嗅掉密码。我总是设置一个简单的装备,只为这种网络嗅探iPhone。

如果FTP是您唯一的选择,那么您应该承认这些凭据是公开的,并且要么匿名连接,要么强烈限制您提供的凭据可以做什么。

特别是,您应确保凭据(或匿名帐户)只能写入而不能读取。如果您的FTP服务器具有可以读写的知名凭据,那么它将很快成为软件和色情副本的主机。

如果你可以使用其他协议(HTTPS,SFTP等)那么这很好,但它实际上不会拯救你。如果您使用该软件发送登录凭证,并且它们具有任何价值,则它们将进行逆向工程。因此,虽然我建议使用HTTPS上传文件,但您仍然无法依赖于在程序中发送的凭据的安全性。您仍然需要确保您的Web服务器能够容忍攻击者随机发送它。

答案 2 :(得分:1)

正如其他人所说,由于FTP是通过网络传输的明文,你在那里不知所措。

然而,无论它是什么,都有安全的方式在设备上存储信息。这种机制通常被称为钥匙串,您可以按照steps outline here进行操作。您还需要阅读Security Overview。 GenericKeychain和CryptoExcercise code examples here都是很好的参考。