0

问题描述

我正在编写必须连接到服务器并从服务器下载一些数据的应用程序。必须下载的文件的 URL 格式如下:

http://www.myserver.com/file.xml?username=xxx&password=xxx

问题

用户不提供URL 和密码,我只是将它们保存在代码中并添加到我需要的 URL 中。我的问题是如何在 Android 设备上安全地保存密码和用户名。

4

4 回答 4

0

在 Android 中,您可以使用 Md5 编码方法进行密码编码,如果您需要保存这些用户详细信息,则将其存储在共享首选项中

于 2013-05-15T12:44:54.223 回答
0

你看看你是否可以使用谷歌 OAuth2:http: //developer.android.com/training/id-auth/authenticate.html

如果不是,请不要在 URL 中发送用户名和密码,而是在 HTTPS POST 中发送,正确的方法是使用 SOAP Web 服务。

于 2013-05-15T12:58:28.733 回答
0

就像一个提示,在 google io 会议上关于 android 应用程序的安全性有一个很好的讨论。

关联

它们没有明确涵盖安全的服务器通信,但给出了一些提示,并提供了一个加密库来简化任何加密任务。

于 2013-05-15T13:02:07.743 回答
0

我建议不要将任何类型的凭据(用户名)和身份验证器(密码)存储在您的设备上,也不要到处传输它们;这通常被认为是一个安全漏洞,因为中间人攻击可以拦截 HTTP 流量并轻松识别两者。

相反,我建议创建一个令牌引擎,将临时标识符与用户和设备相关联。例如:

  • 用户 ID 100收到一个临时令牌,代码A1S2D3F4(随机生成。)
  • 该代码与设备 ID AND200相关联。
  • 每当设备 AND200 尝试访问服务器时,它都会生成以下 URL:

http://www.myserver.com/file.xml?t=A1S2D3F4

请注意,没有标识用户的内容,也没有其凭据或密码。您可以检查生成 URL 的设备是否是令牌最初关联的设备。可以实施额外的控制来检测在其生命周期之外使用的令牌,并帮助识别恶意用户。

于 2013-05-15T13:10:11.280 回答