2

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

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

4

3 に答える 3

2

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

アプリドメイン セッション:

  • 高速 (データベースへのラウンドトリップなし)
  • スケーラブルではない
  • サーバー ファームで同時実行の問題が発生しやすい
  • サーバーの再起動時にセッションが失われます

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

  • 遅い (リクエストごとに DB へのラウンドトリップ)
  • サーバーファームでのスケーリングが容易
  • セッションはサーバーの再起動時に開いたままになります

サイトを使用するユーザーの数を考慮する必要があります。多くのことを見ている場合は、おそらく複数のサーバーが必要になるでしょう。その場合、データベース セッションが最善の策です。単一の Web サーバー/データベース サーバーを使用する場合は、appdomain セッションで問題ありません。

于 2009-07-13T08:47:50.517 に答える
0

HttpSessions がセキュリティの露出を増やす理由がわかりません。セッションがハイジャックされた場合、おそらく DB アクセスもハイジャックされます。

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

私は長期的には、このような不安定なカートが常にあなたの望むものであることに懐疑的です。カートを DB に永続化するのはおそらくそれほど多くの作業ではないので、私はおそらくそれを選びます。

于 2009-07-13T08:22:46.540 に答える
0

私はセッションを使用します-ログアウト時に破壊されるデータでDBを詰まらせても意味がありません。

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

于 2009-07-13T08:43:51.973 に答える