web-dev-qa-db-ja.com

ユーザー資格情報をブラウザに安全に保存する方法は?

ユーザー資格情報を使用してユーザーを認証するためのヘルプが必要です。

Angular 5をフロントエンドとして使用しており、ユーザーがチェックした場合にユーザーのメールとパスワードを保存する必要がありますRemember Me。ログアウトしてブラウザを更新した後、ユーザー認証情報を自動入力します。

ユーザーの資格情報を保存する方法はいくつかあります(Cookie、ローカルストレージ、セッションストレージ、IndexedDB、WebSQL)。しかし、これらはすべて安全ではありません。

ユーザー資格情報をlocalStorageに暗号化して保存することを検討しました。しかし、誰でもそれを解読できるので、この方法は安全ではありません。

対象となるブラウザには、Internet Explorer、MS Edge、Safari、Google Chrome、Opera、Mozilla Firefoxなどがあります。

JavaScriptを使用してクライアント側のWebストレージを実現するにはどうすればよいですか?

ありがとうございました

1
Parth Raval

クライアント側に保存されているもの(暗号化されていないもの)は、ユーザーが表示および/または変更できます。

「Remember Me」機能を実装する通常の方法は、サーバーから送信された暗号化されたユーザー名でCookieを設定することです。

サーバーは、サーバーだけが知っている秘密鍵でユーザー名を暗号化し、その値でCookieを設定します。サーバーが後でそのCookieを受信すると、サーバーはそれを復号化しようとし、成功した場合はユーザーをログインさせます。秘密鍵を知らないため、ユーザーがこれを改ざんすることはできません。

2
Chris Murray