Реализация корзины покупок - PullRequest
2 голосов
/ 13 июля 2009

Я хочу добавить корзину покупок на свой сайт. Корзина должна быть такой, чтобы она сбрасывалась после выхода пользователя из приложения. Это может быть достигнуто с помощью сеансов или таблиц базы данных.

Что должно быть предпочтительнее из вышеупомянутых двух? Есть ли дыры в петлях безопасности, если это обрабатывается с помощью сессий?

Ответы [ 3 ]

2 голосов
/ 13 июля 2009

В отделе безопасности ни одно из двух предпочтений не отдано другому. Вы должны понимать, что обе концепции в основном являются «сессиями», но одна из них обрабатывается в домене приложения, а другая - в домене DB.

Сессии Appdomain:

  • Быстрее (без обхода базы данных)
  • Не масштабируется
  • Склонность к проблемам параллелизма на фермах серверов
  • Сеансы будут потеряны при перезапуске сервера

Сеансы базы данных:

  • Медленнее (возврат в БД для каждого запроса)
  • Проще масштабировать на серверных фермах
  • Сеансы будут оставаться открытыми при перезапуске сервера

Вы должны учитывать, сколько пользователей будет использовать ваш сайт. Если вы смотрите на многое, вам, вероятно, понадобится несколько серверов, и в этом случае сеансы базы данных будут вашим лучшим выбором, если вы останетесь с одним сервером веб-сервера / базы данных, тогда сеансы appdomain подойдут.

0 голосов
/ 13 июля 2009

Я бы использовал сеансы - нет смысла засорять вашу БД данными, которые будут уничтожены при выходе из системы.

Плюс, сеансы довольно безопасны в использовании.

0 голосов
/ 13 июля 2009

Я не понимаю, почему HttpSessions увеличивает вашу безопасность - если ваш сеанс захвачен, то, вероятно, так же и ваш доступ к БД.

Если вы действительно хотите, чтобы корзина вашего пользователя была переходной, тогда, очевидно, вашей HttpSession достаточно. Масштабирующие серверы приложений обычно имеют возможности репликации сеансов для устранения сбоев отдельных серверов.

В долгосрочной перспективе я скептически отношусь к тому, что такая изменчивая тележка всегда будет тем, что вы хотите, мне очень удобно просматривать Amazon и собирать мою тележку, а затем просто оставить ее на некоторое время. Поскольку, вероятно, не так много работы, чтобы сохранить вашу корзину в БД, я бы, вероятно, пошел на это.

...