5

私は現在、約 500 のアイテムを持つ e コマース サイトを開発しています。サイトが IE8+、Firefox、Chrome でサポートされている必要があります。

サイトのユーザーは、ログインしなくても商品をカートに追加できる必要があります。ログインすると、同じブラウザでログインする前にカートに追加されたアイテムが表示されます。ブラウザーに追加されたカート項目をユーザー アカウントにマップしたり、ユーザーがログインするデバイス間でアクセスしたりする必要はありません。

これらの要件を考慮して、カートのアイテム、ローカルストレージ、またはサーバー側の HTTP Cookie を保存する最良の方法は何ですか? また、localstorage を使用する際に発生する可能性のあるセキュリティの問題 (xss など) に関する情報も必要です。

4

1 に答える 1

7

通常、実際のカートの内容はローカルに保存されるのではなく、サーバーが一時的なユーザー ID を作成し、そのユーザー ID を Cookie にして、そのユーザー ID のカートの内容をサーバー側のデータベースに保存します。これにより、ログインしたユーザー (ログインしたユーザー ID に基づいてカートの内容がサーバー側に保存される) に使用するのとまったく同じサーバー側のコードを使用できるため、どのブラウザーからでもカートにアクセスできます。唯一の違いは、ログインしていないユーザーには、永続的なユーザー ID ではなく、一時的なユーザー ID が与えられることです。

ユーザーがカートに物を入れた後にログインするか、アカウントを作成すると、カートの内容をサーバー上の永続的なユーザー ID に簡単に割り当てることができます。

Cookie はどこでも相互運用可能であるため、これで IE8 の問題が解決されます。Cookie はサイズが限られているため、カートの内容をサーバー側のデータベースに保存し、一時的なユーザー ID にのみ Cookie を使用して、その発行も処理します。

于 2012-12-14T08:53:37.923 に答える