1

我希望您能深入了解 Web 应用程序的“会话 ID”。

您认为以下哪一项是最好的:

  1. 会话 ID 包含以下内容: { data: { user_id: ???, auth_user_agent: ???, auth_ip, ???, expires: unix_time }, signature: { "data's signature" } }加密然后 base64ed => 发送给用户
  2. 随机会话 ID 引用缓存中的数据
  3. 随机会话 ID 引用数据库中的数据

我在这里关注性能和安全性。

底线是哪个更好,(解密和验证签名),从缓存中检索或执行数据库连接,检索数据等。

4

1 回答 1

1

与在浏览器发出的每个 HTTP 请求中传输此信息相比,使用随机值从诸如 memcached 之类的快速非关系缓存中获取数据要快得多,并且消耗的资源更少。浏览器最终会将此会话状态发送到不必要的文件,例如 CSS、图像等静态连接。这种会话管理方法会增加对服务器的每个客户端请求的不必要开销。

它的安全性较低,因为即使它是加密的,也没有什么是完美的。除非您是专业的密码学家,否则不惜一切代价避免使用加密。

于 2013-01-19T18:08:23.807 回答