2009-07-13 17 views
2

私のサイトにショッピングカートを統合したい。ユーザーがアプリケーションからサインアウトすると、カートはリセットされます。これは、セッションまたはデータベーステーブルを使用して実現できます。ショッピングカートの実装

上記2つのうちのどれを選ぶべきですか?これがセッション経由で処理される場合、セキュリティループホールはありますか?

+0

セッションはかなり安全ですが、データベースバックアップされたセッション情報ほどスケーラブルではありません。データベースのバッキングは、プロセスセッション状態の場合と同じようには機能しない可能性があります。あなたのアプリを何冊作成していますか?あなたはウェブファームが必要でしょうか? –

+0

「サインアウト」を定義できますか、ブラウザを閉じるか、実際にログアウトボタンをクリックしますか?後者の場合は、ユーザーがログインしていない場合はどういう意味ですか、そうでない場合はバスケットに追加できますログインしましたか? –

答えて

0

HttpSessionsがセキュリティ上の脅威を増やす理由はわかりません。セッションがハイジャックされた場合、DBにアクセスする可能性があります。

あなたのユーザーのカートが一時的であることを本当に意図しているなら、HttpSessionで十分です。アプリケーションサーバーのスケーリングには、通常、個々のサーバーの障害に対処するためのセッションレプリケーション機能があります。

私は長期的にこのような揮発性のカートが常にあなたの望むものであると懐疑的です。私はAmazonの周りをブラウズしてカートを組み立てて、しばらくお待ちください。おそらく、あなたのカートをDBに保存するのにもっと大変な作業ではないので、おそらくそのために行くだろう。

0

私はセッションを使用します。ログアウト時に破棄されるデータにDBが詰まることはありません。

さらに、セッションは安全に使用できます。

2

セキュリティ部門では、2つのうちどちらも優先されません。両方の概念は基本的に「セッション」ですが、一方はappdomainで処理され、もう一方はDBドメインで処理されることを理解する必要があります。

のAppDomainセッション:

  • 高速化(ノーラウンドトリップデータベースに)
  • ないスケーラブル
  • セッションは、サーバ再起動時に失われます、サーバーファーム上の並行性の問題になりやすい

データベースセッション:

(要求ごとにDBへのラウンドトリップ)
  • セッションがサーバー上で開いたままにされるサーバファームに拡張することが容易には再起動する
    • 遅い
    あなたはどのように多くのユーザーにサイトを使用する検討すべきである

    。多くの場合、おそらく複数のサーバーが必要になります。その場合、データベースセッションが最善の策になります。単一のWebサーバー/データベースサーバーを使用する場合、appdomainセッションはうまくいくでしょう。