我有一个简单的jQuery mobile PhoneGap应用程序,该应用程序使用ajax调用服务器来验证针对服务器db的用户凭据(使用CORS)。
一旦用户通过身份验证,我为会话设置了一些本地存储变量,但我怀疑这不是维护状态的安全方法。
我想知道是否有更好的&更安全的方式来跟踪用户会话状态。目前我正在考虑在应用程序和实现程序之间实现某种基于令牌的握手。登录后每个后续服务器调用的服务器。我希望有更好的标准方法在PhoneGap中实现安全会话。
答案 0 :(得分:0)
我认为您不应该将原始凭证保存在本地存储中。首先,您应该通过加密算法对凭据进行加密,然后将其保存在本地存储或首选项(Android / iOS - 最好是优先存储)或任何您想要的地方。如果另一个人获得凭据,它已被加密,他们不使用它来验证服务器(只有你有解密算法)。
继续,您必须采取措施防止其他人反编译您的应用。他们将拥有您的解密算法并使用它来解密凭证 - >原始凭证 - >发布到服务器成功。
有很多方法来保护您的应用程序,您可以搜索和研究
Android中的代码演示:
SharedPreferences sharedPref = getSharedPreferences("account", Context.MODE_PRIVATE);
Editor editor = sharedPref.edit();
user = your_encrypt(username);
pass = your_encrypt(password);
//encrypt and save account
editor.putString("username", user);
editor.putString("password", pass);
editor.commit();
//get account
String u = sharedPref.getString("username", "");
String p = sharedPref.getString("password", "");
//decrypt username/pass
username = your_decrypt(u);
password = your_decrypt(p);