我们正在开发一个与我们的后端通信的安卓库。该库将分发给我们的客户,允许他们的应用程序将数据发送到我们的服务器。
每个库都应该以安全的方式与客户端凭证(令牌等)进行通信。
哪里是存储该令牌的最佳位置?也许在清单?单个文件夹中的纯文本文件?
我希望尽可能透明。客户应该下载我的库,下载凭证文件,所有应该开始顺利运行。
任何提示?
非常感谢
答案 0 :(得分:1)
处理凭证
一般情况下,我们建议尽量减少询问用户的频率 凭证 - 使网络钓鱼攻击更加显着,而且不太可能 要成功。而是使用授权令牌并刷新它。
如果可能,用户名和密码不应存储在 设备。而是使用用户名和执行初始身份验证 用户提供的密码,然后使用短命的, 特定于服务的授权令牌。
应该可以访问多个应用程序可访问的服务 使用AccountManager访问。如果可能,请使用AccountManager 用于调用基于云的服务并且不存储密码的类 设备。
使用AccountManager检索帐户之前,请先创建CREATOR 传递任何凭据,以便您不会无意中通过 凭证到错误的申请。
如果凭据仅由您创建的应用程序使用, 然后您可以验证访问AccountManager的应用程序 使用checkSignature()。或者,如果只有一个应用程序 使用凭证,您可以使用KeyStore进行存储。
因此,使用AccountManager似乎是存储凭据的最佳选择。
您也可以使用SharedPreference,但在root手机上有风险,可以访问应用的首选项文件。