【发布时间】:2013-12-31 04:32:42
【问题描述】:
我需要在页面访问之间存储分页组件的状态(具体来说,我需要保存当前查看的页面、每页显示的项目数以及过滤/搜索条件文本)。
起初我考虑使用 localStorage 创建客户端本地会话。但这在 IE8 中不起作用,所以我在 IE8 中回退到使用会话 cookie。但过滤/搜索条件是敏感数据,因此会话 cookie 是不可接受的。
现在我正在考虑使用服务器端会话存储,但我想让实现透明化。这个想法是创建一个名为“本地会话”的全局 javascript 对象(或 jQuery 插件)。本地会话实现将随每个请求发送其内容(使用 jQuery AJAX beforeSend 回调)。因此,每个请求都会发送客户端“本地会话”的新状态。
服务器将在每个新呈现的页面中包含所有本地会话数据(即仅用于非 AJAX 响应)。
我正在使用 ASP.NET MVC,很容易创建一个全局过滤器,该过滤器将收集此“本地会话”数据并将其存储在服务器端会话中。
两个问题:
- 在 javascript 对象中存储敏感数据是否比在会话 cookie 中存储这些数据更安全?
- 将本地会话内容作为标头发送是否是个好主意(我可以进行一些优化,仅在实际更改时发送,甚至仅发送更改)。
- 对于实施此要求还有其他建议吗?
注意:使用历史 API 在 IE8 中不起作用,它也不是我所需要的(即使我通过点击链接而不是点击返回按钮返回页面,页面状态也应该保持不变)。
注意:如果解决方案在 cookie 被禁用时也能正常工作,那就太好了,但这并不是一个严格的要求。
【问题讨论】:
-
支持IE8害死我,感受你的痛
标签: session cookies session-cookies