问题描述
我正在编写必须连接到服务器并从服务器下载一些数据的应用程序。必须下载的文件的 URL 格式如下:
http://www.myserver.com/file.xml?username=xxx&password=xxx
问题
用户不提供URL 和密码,我只是将它们保存在代码中并添加到我需要的 URL 中。我的问题是如何在 Android 设备上安全地保存密码和用户名。
我正在编写必须连接到服务器并从服务器下载一些数据的应用程序。必须下载的文件的 URL 格式如下:
http://www.myserver.com/file.xml?username=xxx&password=xxx
用户不提供URL 和密码,我只是将它们保存在代码中并添加到我需要的 URL 中。我的问题是如何在 Android 设备上安全地保存密码和用户名。
在 Android 中,您可以使用 Md5 编码方法进行密码编码,如果您需要保存这些用户详细信息,则将其存储在共享首选项中
你看看你是否可以使用谷歌 OAuth2:http: //developer.android.com/training/id-auth/authenticate.html
如果不是,请不要在 URL 中发送用户名和密码,而是在 HTTPS POST 中发送,正确的方法是使用 SOAP Web 服务。
我建议不要将任何类型的凭据(用户名)和身份验证器(密码)存储在您的设备上,也不要到处传输它们;这通常被认为是一个安全漏洞,因为中间人攻击可以拦截 HTTP 流量并轻松识别两者。
相反,我建议创建一个令牌引擎,将临时标识符与用户和设备相关联。例如:
请注意,没有标识用户的内容,也没有其凭据或密码。您可以检查生成 URL 的设备是否是令牌最初关联的设备。可以实施额外的控制来检测在其生命周期之外使用的令牌,并帮助识别恶意用户。