会话ID - 包含数据或数据引用?

时间:2013-01-18 11:21:14

标签: security web-applications cookies asp.net-web-api sessionid

我希望您对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 个答案:

答案 0 :(得分:1)

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

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