サイトにショッピング カートを統合したいと考えています。カートは、ユーザーがアプリケーションからサインアウトするとリセットされるようにする必要があります。これは、セッションまたはデータベース テーブルを使用して実現できます。
上記の2つのうち、どちらを優先する必要がありますか? これがセッション経由で処理される場合、セキュリティ ループ ホールはありますか?
サイトにショッピング カートを統合したいと考えています。カートは、ユーザーがアプリケーションからサインアウトするとリセットされるようにする必要があります。これは、セッションまたはデータベース テーブルを使用して実現できます。
上記の2つのうち、どちらを優先する必要がありますか? これがセッション経由で処理される場合、セキュリティ ループ ホールはありますか?
セキュリティ部門では、どちらも優先されません。どちらの概念も基本的に「セッション」ですが、一方はアプリケーション ドメインで処理され、もう一方は DB ドメインで処理されることを理解する必要があります。
アプリドメイン セッション:
データベース セッション:
サイトを使用するユーザーの数を考慮する必要があります。多くのことを見ている場合は、おそらく複数のサーバーが必要になるでしょう。その場合、データベース セッションが最善の策です。単一の Web サーバー/データベース サーバーを使用する場合は、appdomain セッションで問題ありません。
HttpSessions がセキュリティの露出を増やす理由がわかりません。セッションがハイジャックされた場合、おそらく DB アクセスもハイジャックされます。
ユーザーのカートを一時的なものにするつもりなら、明らかに HttpSession で十分です。通常、スケーリング アプリ サーバーには、個々のサーバーの障害に対処するためのセッション レプリケーション機能があります。
私は長期的には、このような不安定なカートが常にあなたの望むものであることに懐疑的です。カートを DB に永続化するのはおそらくそれほど多くの作業ではないので、私はおそらくそれを選びます。
私はセッションを使用します-ログアウト時に破壊されるデータでDBを詰まらせても意味がありません。
さらに、セッションは非常に安全に使用できます。