2013-09-30 2 views
0

서버에 아약스 호출을 사용하여 서버 db (CORS 사용)에 대한 사용자 자격 증명을 인증하는 간단한 jQuery 모바일 PhoneGap 애플리케이션이 있습니다.PhoneGap을 사용하여 보안 세션 유지

일단 사용자가 인증되면 세션에 대한 일부 로컬 저장 변수를 설정하지만 이것은 보안 상태를 유지하는 방법이 아닌 것으로 생각됩니다.

더 나은 사용자 세션 상태를 추적하는 더 안전한 방법이 & 일지 궁금합니다. 지금은 응용 프로그램간에 & 사이의 토큰 기반 핸드 셰이크를 구현하려고 할 때마다 후속 서버 호출 포스트 로그온에 대한 서버가 필요합니다. PhoneGap에서 보안 세션을 구현하는 더 나은 표준 방법이 있기를 바랍니다.

답변

0


로컬 저장소에 원본 자격 증명을 저장하면 안됩니다. 처음에는 암호화 알고리즘을 사용하여 자격 증명을 암호화해야하며 로컬 저장소 또는 환경 설정 (Android/iOS - 기본 설정은 가장 좋음) 또는 원하는 곳 어디에서나 저장할 수 있습니다. 다른 사용자가 자격증 명을 얻으면 암호화되고 서버를 사용하여 인증되지 않습니다 (알고리즘 해독 만 가능).
계속 진행하면 다른 사용자가 앱을 디 컴파일하지 못하도록 조치를 취해야합니다. 그들은 당신의 암호 해독 알고리즘을 가지고 그것을 사용하여 자격 증명을 해독 -> 원본 자격 증명 -> 서버 성공에 게시합니다.
앱을 안전하게 보호 할 수있는 방법이 많으므로 검색과 조사가 가능합니다. 안드로이드
코드 데모 :

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

그렇게 할 수 있습니다. 하지만 다른 사람이 액세스하여 자격 증명을 변경할 수 있으므로 로컬 저장소에 저장해서는 안됩니다. Preferences (xml) 또는 데이터베이스에 저장해야하며 액세스 할 수 있습니다. –