2013-09-30 82 views
0

我有一個簡單的jQuery移動PhoneGap應用程序,它使用ajax調用服務器來對服務器db(使用CORS)驗證用戶憑據。使用PhoneGap維護安全會話

一旦用戶通過身份驗證,我爲會話設置了一些本地存儲變量,但我懷疑這不是一種維護狀態的安全方法。

我想知道是否有更好的方法來跟蹤用戶會話狀態。目前,我正在考慮在每個後續服務器調用登錄後,在服務器的應用程序&之間實施某種基於令牌的握手。我希望在PhoneGap中實現安全會話有更好的標準方法。

回答

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); 
+0

如果我理解你正確的建議是加密證書,然後把它們存儲在本地存儲,然後解密他們的服務器調用? –

+0

你可以做到這一點。但我認爲你不應該在本地存儲中存儲,因爲另一個人可以訪問和更改憑證。您應該在應用程序中存儲首選項(xml)或數據庫,只有您可以訪問它。 –