从网站文件中提取字符串?

时间:2011-06-27 20:02:16

标签: iphone string text web extract

在我的应用中,用户需要输入密码才能输入(无用户名)。我以为我可以将文件上传到包含密码的网站服务器,用户可以在应用程序的文本字段中输入密码,然后应用程序会将用户的文本与网站文件中的文本进行比较,看看是否有是相同的,因此有权访问该应用程序。这样,我可以轻松更改密码,而无需更新应用程序。

我见过有关如何从UIWebview中提取文本的教程,但我想知道如果没有应用程序中的WebView,我将如何做到这一点。

教程: http://www.youtube.com/watch?v=TVATwUMuRBM

此外,如果有人知道更好/更简单的方法,请告诉我!

1 个答案:

答案 0 :(得分:0)

我建议在服务器上以JSON格式存储密码数据。然后,我将使用Web上的许多JSON框架和教程之一来帮助实现将数据加载到应用程序中。有很多好的。 I went through this one when I first worked with JSON on iOS.那里可能会有更好的。

此方案的一个问题是,每次更改密码时,应用用户都需要新密码。您需要为每个用户提供安全的分发渠道,以便未经授权的用户不会获得新密码。

相反,我会对数据使用公钥/私钥对加密。应用程序的每个实例都有一个私钥,您将保留匹配的公钥和关联的用户ID。这可以在特定设备上的应用程序初始运行期间通过电话回家进程设置。我将使用授权的公钥加密密码,并将所有加密的字符串加载到服务器上的JSON文件中。运行时,应用程序将通过JSON加载加密的密码字符串,解密字符串并检查已知密码。如果找到了正确的密码,则该应用程序已获得授权并继续运行。

然后,仅通过从服务器中删除一个用户的加密密码来取消对一个用户的授权。所有其他用户将继续工作,而不会收到新密码的通知。

通过使用其他公钥/私钥对对JSON数据进行签名,可以应用更高级别的安全性。 JSON使用私钥签名,所有应用程序都获取公钥的副本以检查JSON数据的来源。

由于iOS应用程序必须经过代码签名,因此闯入者在应用程序中难以规避此保护。但是存在一个安全漏洞,即JSON数据可以存储,然后在与恶意(对应用程序)代理服务器的中间人攻击中呈现给应用程序。 JSON数据可以加盖日期标记然后进行签名,因此应用程序也可以检查该数据,并且不接受早于某个设置时间的JSON数据,具体取决于禁用用户所需的时间的重要性。如果一周就足够了,也许这可以保持手动过程,但是应该在网络服务器上实现大约几天或几小时的时间范围作为自动过程。

如果应用程序的分发增长到JSON数据量巨大,需要过多的数据下载,则可以对JSON数据进行分段。多个JSON文件可以存储在服务器上,并通过在文件名中插入ID字符串来访问。可以在特定设备或其他机制的初始运行设置期间选择此ID字符串。

虽然最初实施起来要复杂得多,但这种方法更安全,更易于管理,尤其是那些从不需要处理新授权密码的用户。