2011-08-15 4 views
2

HTML5 오프라인 캐시를 사용하여 오프라인으로 실행할 수있는 웹 앱이 있습니다. 클라이언트에 sha256 해시를 저장하여 오프라인에서 로컬로 로그인 할 수있게하지만 실제 비밀번호를 로컬에 저장할 필요가 없습니다.오프라인 웹 앱을 사용하려면 로컬에 저장된 보안 자격증 명이 필요합니다.

앱이 온라인 상태가되면 앱이 자동으로 서버에 로그온하여 비밀번호를 다시 입력하지 않아도됩니다. 즉, 클라이언트에 실제 암호를 저장해야하거나 서버에 해시 된 암호를 전달하여 서버에서 사용자를 인증 할 수 있어야합니다. 이 두 가지 방법 모두 단점이있는 것 같습니다 :

나는 클라이언트에 암호를 안전하게 저장할 수 있습니다 (자바 스크립트 변수는 할 수 있지만 페이지를 새로 고침하면 var가 범위를 벗어납니다). 쿠키 또는 세션 저장소 또는 로컬 저장소는 모두 너무 쉽게 볼 수 있습니다.

나는 암호의 sha256 해시를 로컬에 저장하고 있지만,이 해시에서 사용자를 인증 할 수 있도록 서버에서 메소드를 열면, 보안 오히려.

사람은? 덕분에이 일에 어떤 밝은 아이디어를 얻었다.

(서버는 ASP.NET MVC C#입니다.)

답변

0

해시 된 비밀번호는 IndexedDB 또는 WebSQL 데이터베이스에 저장할 수 있습니다. 두 가지 모두 읽기가 어렵 기 때문에 Chrome 개발자 도구를 사용하면 액세스 할 수 있습니다. 당신도 알지만 - Internet Explorer에서도 그 중 어느 것도 지원되지 않습니다. 하지만 앱이 오프라인으로 실행되는 경우 문제가되지 않습니다.)

관련 문제