为什么我不用cookie进行会话管理?

时间:2011-06-24 16:48:28

标签: cookies session-cookies

根据新的欧洲法律:是否有更好的会话管理方式? Cookie看起来很完美,因为我不需要在服务器上存储任何内容,因此会话不会丢失,并且可以水平扩展到任意数量的服务器。

2 个答案:

答案 0 :(得分:0)

将会话数据存储在Cookie中会将该数据以及可能的代码内部工作方式暴露给可以访问用户计算机以及中间人的任何人。即使加密,我也不喜欢这个想法。此外,我认为如果仅包含在cookie中,会话将更容易丢失,因为许多用户经常转储cookie和相关的历史信息。凭借强大的服务器端存储机制,会话数据更稳定,IMO。

答案 1 :(得分:0)

将值存储在隐藏字段中,这些字段在回发之间保留在客户端上,可能会根据您的要求进行加密。

如果您正在使用ASP.NET,那么有许多工具可用于此目的,只要您不需要跨会话持久保存信息,ViewState将允许您有效地完成与cookie相同的操作。

如果您不使用ASP.NET,则可能需要编写自己的服务器端组件,这些组件将为您“设置”持久数据(必要时对其进行加密,然后将其存储在相应的隐藏字段中)并且还需要通过访问隐藏字段值并可能解密来“获取”持久化数据。如果您正确执行此操作,则可以在所有项目中重复使用此组件。

我没有听说过有关新法律的任何内容,但谷歌的第一个链接看起来像是英国保姆州政府的大规模失败我们都知道,那些坚持技术监管的老顽固的立法者总是会结束好吧(facepalm)。