13

ユーザーに依存するデータを に保存したい場合localStorage(たとえば、複数のユーザーがサイトで同じブラウザーを使用できるため)、通常、このシナリオをどのように処理しますか?

userIdフロントエンド側で一意のようなものでユーザーを識別できると想像してみましょう。私はおそらく次のようなことをするでしょう:

// retrieve the data
data = JSON.parse( window.localStorage.getItem( userId ) ) || {};

// persist the data
window.localStorage.setItem( userId, JSON.stringify( data ) );

これは素朴なやり方ですか?

編集: @MДΓΓ БДL およびその他のコメントに従ってもう少し考えた後、データが機密であると仮定しましょう。その場合、上記の例は確かにナイーブです。この場合、機密データを処理する方法についてのアイデアはありますか? それとも、答えはおそらく: 実行しないで、バックエンドに保存しますか?

4

1 に答える 1

4

機密データをクライアントに保存することはほとんどありません。コンピューターの物理的なセキュリティを保証したり、そのコンピューターにログインしているユーザーがそのコンピューターを使用しているユーザーだけであることを保証したりできない限り (どちらも通常は正しくありません)、機密情報をサーバーに保存しないでください。あなたがそれを避けることができれば、クライアント。

機密情報をサーバーに保存し、その情報をブラウザーに提供する前に適切なログイン資格情報を要求する方が、はるかに安全です。次に、サーバー上のデータの物理的なセキュリティを制御し、ユーザーが自分のものではないデータにアクセスできないようにすることができます。さらに、SSL を使用して飛行中に保護することもできます。

1 人のユーザー、1 台のコンピューター、およびそのコンピューター上の 1 つのブラウザーのみが利用できるものをローカルに保存したい場合は、パスワードの入力を求め、そのパスワードを使用して、ローカル ストレージに保存されたデータを暗号化/復号化できます。一時的なオフライン アクティビティを除いて、インターネットへのアクセス方法に関係なく、そのユーザーが利用できるサーバーに保存するよりも、ユーザー エクスペリエンスが向上する理由は現在わかりません。モバイルアクセス、タブレットアクセス、ラップトップアクセスなどの最近では、クラウドにデータを保存する傾向が強くなっているようです。まったく同じコンピューターを使用する必要があります。

于 2012-04-25T19:50:57.207 に答える