2016-04-05 21 views
2
 `$(function rememberMe() { 

     if (localStorage.chkbx && localStorage.chkbx != '') { 
      $('#remember-me').attr('checked', 'checked'); 
      $('#user').val(localStorage.usrname); 
      $('#pass').val(localStorage.pass); 
     } else { 
      $('#remember-me').removeAttr('checked'); 
      $('#user').val(''); 
      $('#pass').val(''); 
     } 

     $('#remember-me').click(function() { 

      if ($('#remember-me').is(':checked')) { 
       localStorage.usrname = $('#user').val(); 
       localStorage.pass = $('#pass').val(); 
       localStorage.chkbx = $('#remember-me').val(); 
      } else { 
       localStorage.usrname = ''; 
       localStorage.pass = ''; 
       localStorage.chkbx = ''; 
      } 
     }); 
    }); 

ログインページで「Remember me」機能を実装するためにローカルストレージを使用しましたが、その安全性は疑問です。私はローカルストレージにパスワードを格納していますが、私はより良いオプションを使用したいです.Encryptionは私がクライアント側で復号化のためのスクリプトを送らなければならないので役に立たない。任意の代替手段はありますか?ブラウザのローカルストレージはどれくらい安全ですか?

+0

ローカルストレージに何を保存していますか?どのようなセキュリティが心配ですか? –

+3

'localStorage' ..それを濫用しないでください。それはユーザのウェブブラウザに保存されており、あなたの目的には非常に不安です。これは、例えば、ユーザのためのインタフェースの状態を維持するためにはうまくいく。おそらくトークンベースの認証であるバックエンドソリューションに向かうべきです。 – urbz

+0

@ vers。パスワードを取得するためにログインページからリダイレクトする場合はどこでもajaxコールを行う必要があります。 – Pranesh

答えて

5

パスワードを保存しないでください。サーバー側でハッシュ暗号化を行い、ブラウザーにcookie(localstorageなど)を格納します。これをhttpsで処理するとよいでしょう。常に暗号化/復号化サーバー側を実行します。

あなたはしっかりとこのstackoverflowの答えのベストプラクティス次のようにそれを行う方法に大きな説明を見ることができます:それはクッキーあなたはのlocalStorageを置くことができると言うどこ

What is the best way to implement "remember me" for a website?

The definitive guide to form-based website authentication

代わりに

2

ローカルストレージに保管パスワードを絶対に入れないでください。

  1. 作成し、ユーザーの再ログインした場合
  2. 、セッションキーでセッションを復元し、セッション鍵を作成し、SQLでこのキーを格納し、ユーザーのストレージで
  3. 保存セッションキー、
  4. 、認証を行います新しいセッションキー
関連する問題