我有一个简单的 jQuery mobile PhoneGap 应用程序,它使用对服务器的 ajax 调用来针对服务器 db 验证用户凭据(使用 CORS)。
用户通过身份验证后,我为会话设置了一些本地存储变量,但我怀疑这不是维护状态的安全方法。
我想知道是否有更好、更安全的方法来跟踪用户会话状态。目前,我正在考虑在应用程序和服务器之间为每个后续服务器调用登录后实现某种基于令牌的握手。我希望有一种更好更标准的方法来在 PhoneGap 中实现安全会话。
我有一个简单的 jQuery mobile PhoneGap 应用程序,它使用对服务器的 ajax 调用来针对服务器 db 验证用户凭据(使用 CORS)。
用户通过身份验证后,我为会话设置了一些本地存储变量,但我怀疑这不是维护状态的安全方法。
我想知道是否有更好、更安全的方法来跟踪用户会话状态。目前,我正在考虑在应用程序和服务器之间为每个后续服务器调用登录后实现某种基于令牌的握手。我希望有一种更好更标准的方法来在 PhoneGap 中实现安全会话。
我认为您不应该将原始凭据保存在本地存储中。首先,您应该通过您的加密算法加密凭证,您可以将其保存在本地存储或首选项(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);