質問はそれをすべて本当に言います。サービスを提供したいのですが、自分でデータをデータベースに保存したくありません。ハッキングなどの最近のニュースをすべて見ると、クライアントがデータを完全に制御できるほうがいいように思えます。
問題は、保存されたデータが潜在的に機密であるということです。私がやろうとしていたことは...クライアントがWebサイトにアクセスすると、「あなたはパーソナルコンピュータとパブリックコンピュータのどちらにいますか」という質問が表示されます。公共のコンピューター上にある場合、サイトはアクセスを拒否します。
彼らがパーソナルコンピュータ上にいた場合、パスワードを設定するように促します。すべてのデータはこのパスワードで暗号化されます。これは明らかに安全ではありません。暗号化方式はJavaScriptであり、パスワードはプレーンテキストであるため、知識のあるユーザーがlocalStorageでパスワードを見つけてデータにアクセスできると思います。
私はこれはそれほど問題ではないと感じています。パーソナルコンピューターを使用している場合、このような事態が発生する可能性はほとんどありません。他の誰かがコンピューターの特定のユーザーアカウントにアクセスする必要があり、他の誰かがサイトについて知っている必要があります...他の誰かが理解する必要がありますlocalStorageとそれにアクセスする方法。機密データは、IDやその他多くの情報を危険にさらすものではありません。ほとんどの人が公開したくないものを記録するだけです。
だから本当に問題は、localStorageは十分に安全ですか?
追加の質問.. localStorageを消去するのはどのくらい難しいですか?ユーザーが誤ってデータをワイプしてほしくない。
最後に、サイトにアクセスできるパスワードを持っているかのように、データを暗号化/復号化する価値さえあります。
ローカルストレージでさえも、パスワードをまったく保存しないのはどうですか?鍵導出関数を使用して、パスワードから鍵を取得できます。ソルトと適切な数の反復で、これはまあまあ安全です。
ローカルストレージでJavaScriptを使用すると、最大で(サーバーとブラウザとサーバー間の接続)と同じくらい安全です。
誰かがサーバーを変更してさまざまなJSファイルを提供したり、(送信中に)変更したりした場合、サーバーからクライアントに送信されたJSファイルは必要なデータで何でもできます。
さらに:データはクライアント上にあるため、データを保護するために何もできません。通常のサーバーでは、たとえばアクセスの頻度を制限します(安全なリモートパスワードの例:10分以内に1つのパスワードのみが読み取られます)。データがクライアント上にあり、データを操作するすべてのコードが攻撃者によって操作される可能性がある場合、これはすべて役に立ちません。
結局のところ、localstorageを使用しても、Webアプリケーションを保護する必要があります。では、なぜ(うまくいけば)安全なサーバーで処理を行うのでしょうか。そうでない場合は、クライアントにインストールされているローカルプログラムも使用しないのはなぜですか。
LocalStorageデータの復号化に使用されるサーバーからキーを取得するのはどうですか?
次のように機能します。
これにより、ユーザーがセッションを確立している間のみアクセスが許可されます。
2つの問題:
プレーンテキストのパスワードを保存し、見つからない可能性があるという事実に依存している場合、それはあいまいさによるセキュリティです。データをクリアテキストで保存し、同じ仮定に依拠する(まだ安全ではないが、誤った安心感はない)
ほとんどのブラウザでは、キャッシュを消去すると、localStorageコンテンツも削除されます。履歴とキャッシュを消去しても、重要なデータが失われることはありません。
あなたはlocalStorageが何を意味するのかを考えすぎていると思います。 webappsでうまく機能するローカルデータベースを使用する場合は、 CouchDB 's couchapps を参照してください。
ただし、パスワードは保存しないでください。
通常、ローカルストレージを消去することは難しくありませんが、ブラウザによって異なります。ただし、ブラウザの開発者ツール(firebug、webkitなど)を入手する必要があります。
クッキーと同じように考えてください。機密データをローカルストレージに保存しないでください。パスワード、クレジットカード番号など。
x回の非アクティブの後、ローカルストレージをクリアする機能をいつでも実装できますが、セキュリティの問題は解決しません。自動セッションが期限切れになるようなものです。同じ問題が当てはまります。ある人がコンピューターを離れてから、セッションの有効期限が切れる前に誰かが座った場合、彼らは何かをすることができます。
javascrypt を使用できます。暗号化/復号化キーになるパスワードをユーザーに尋ねます
パスワードを保存する必要はありませんが、ユーザーがページを開くたびにパスワードを要求します。
ユーザーが望めば、それを保存することができます。
しかし、それからstivloのコメントに参加するために、どうですか:
推論の始まりを再考すべきだと思います。いくつかの最近のセンセーショナルなイベントのためにクラウドを回避することは、簡単な結論です。