【问题标题】:Shopping cart implementation购物车实施
【发布时间】:2010-11-10 05:36:16
【问题描述】:

我想在我的网站中集成一个购物车。一旦用户退出应用程序,购物车应该会重置。这可以通过会话或使用数据库表来实现。

在以上两个中应该更喜欢什么?如果通过会话处理,是否存在任何安全漏洞?

【问题讨论】:

  • 会话非常安全,但不如数据库支持的会话信息可扩展。数据库支持不太可能像进程会话状态那样具有高性能。您为多少用户构建您的应用程序?您可能需要网络农场吗?
  • 你能定义“退出”吗,是关闭浏览器,还是实际点击退出按钮,如果是后者,如果用户没有登录是什么意思,可以吗?如果未登录,将东西添加到购物篮?

标签: ruby-on-rails session shopping-cart


【解决方案1】:

我不明白为什么 HttpSessions 会增加您的安全风险 - 如果您的会话被劫持,那么您的数据库访问权限大概也是如此。

如果您真的打算让您的用户的购物车是暂时的,那么显然您的 HttpSession 就足够了。扩展应用服务器通常具有会话复制功能来处理单个服务器故障。

从长远来看,我怀疑这种不稳定的购物车是否永远是您想要的,我发现在亚马逊上浏览并组装我的购物车非常方便,然后就放一会儿。由于将您的购物车保存在数据库中可能不是很多工作,我可能会这样做。

【讨论】:

    【解决方案2】:

    我会使用 Sessions - 没有必要将您的数据库堵塞在注销时将被销毁的数据上。

    另外,Session 使用起来非常安全。

    【讨论】:

      【解决方案3】:

      在安全部门,两者中没有一个比另一个更受欢迎。你应该明白,这两个概念基本上都是“会话”,但是一个在appdomain中处理,另一个在DB-domain中处理。

      Appdomain 会话:

      • 更快(无需往返数据库)
      • 不可扩展
      • 服务器场上容易出现并发问题
      • 服务器重启时会话将丢失

      数据库会话:

      • 较慢(每个请求往返数据库)
      • 更易于在服务器群上扩展
      • 服务器重启时会话将保持打开状态

      您应该考虑有多少用户将使用您的网站。如果您查看很多,您可能需要多个服务器,在这种情况下,数据库会话将是您的最佳选择,如果您将使用单个 Web 服务器/数据库服务器,那么 appdomain 会话就可以了。

      【讨论】:

        猜你喜欢
        • 2012-07-01
        • 2013-03-05
        • 2021-12-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-12
        • 2011-10-30
        • 1970-01-01
        相关资源
        最近更新 更多