【问题标题】:De facto session data storage [closed]事实上的会话数据存储[关闭]
【发布时间】:2012-10-14 19:17:00
【问题描述】:

我注意到有不少技术用于存储临时会话数据(不知道它是如何正确调用的。例如:

Cookie

jQuery.data()

html5 存储

PHP 会话

可能还有很多其他人。

在网站页面之间传输临时用户数据(如购物车信息或某些变量/数组)的最安全且最不依赖浏览器设置(如禁用的 cookie)的方式是什么?

Cookies 看起来很简单,但用户可以禁用它们,如果有的话,我想找到一种更可靠的方法。用户注册是,“登录”目前不是一个选项。

为此目的还有哪些其他技术/方法?

【问题讨论】:

  • 计算机编程的“正确”语言是什么?这不是一个问题。这是一个公案。
  • 好的,让我重新表述一下。这些技术中哪一项是专业开发人员最流行的选择,哪一项最安全,对用户浏览器设置最不可靠(如禁用 cookie)
  • 如果没有 cookie,除非您将垃圾注入每个呈现的 URL,否则您真的无法进行会话。禁用 cookie 通常也会产生禁用会话的效果。
  • 所以基本上cookie,除了不安全,不比php会话更糟糕吗?因为两者都是通过禁用厨师来禁用的
  • 通常存储在 cookie 中的会话是加密的,因此客户端无法解码或修改它们,但服务器可以。这些 cookie 中可以存储的数据量也需要相对有限,因为 cookie 将随每个请求一起发送。

标签: php jquery mysql session cookies


【解决方案1】:

服务器端存储。

jquery、cookie 或 html5 存储的问题是用户可以修改数据,并且根据用户运行代码的平台/浏览器/设备组合,它可能会产生意想不到的结果。

【讨论】:

  • 如果没有像 memcached 这样的公共存储或经过调整的数据库,这不适用于多台服务器。
  • Tadman,你能详细说明一下吗?
  • 如果您将会话本地存储在一个文件中(在某些平台上是默认设置),则此文件不会在服务器之间共享。如果您的应用程序前面有一个负载均衡器,它没有会话关联功能,您的会话数据将随机消失,或者更糟糕的是,您可能有两个或多个冲突的会话状态,每个服务器都有一个独立的会话状态。这就是您需要共享存储设施的原因。
猜你喜欢
  • 2011-06-18
  • 1970-01-01
  • 2011-02-13
  • 1970-01-01
  • 1970-01-01
  • 2012-04-30
  • 1970-01-01
  • 1970-01-01
  • 2010-12-22
相关资源
最近更新 更多