Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

localStorage 跨 scheme 的坑

  我们经常纠结 Cookie 的跨域问题,但比起 localStorage 的同源策略,Cookie 的跨域策略已经非常强大了。最近在思考 http 到 https 迁移的一些事情,由于没法瞬间把所有迁移都搞定,有部分页面暂时留在 http 上,于是同步 localStorage 就出了问题。
  如何跨域共享 localStorage?这个问题可以使用 IFRAME + postMessage 来解决,我也实现过一个 XLocalStorage。目前也想不到其它更实用的解决办法了(如果还有更好的办法希望大家能分享下)。这个做法一直以来都没啥问题,因为都只在相同的 scheme 上跑。现在遇到的问题是在 http 和 https 混用的项目中共享 localStorage。因为 https 页面中如果嵌入 http 内容会出现各种诡异的提示,虽然勉强能用,但会造成非常差的用户体验。
  我目前也没能解决这个问题,或者说这个问题本身是由更奇葩的用法造成的。同时使用 http 和 https 这种情况本身就不该存在
  以前一直吐槽 Cookie,现在想想 Cookie 的跨域策略设计还是挺棒的。父域共享,子域隔离,既提供了灵活性又保证了安全性。而且 Cookie 只是「跨域策略」,并不是「同源策略」。它只看管域名和路径,对 scheme、port 都是无视的。所以在 http 和 https 之间可以共享 Cookie。
  由于急于解决这个问题,我目前的做法是暂时丢掉一部分 localStorage,把重要的几个数据临时换成 Cookie 存储。等过段时间全面 https 的时候再恢复 localStorage 的使用。我知道这个办法很蛋疼,但真想不到更好的了。如果大家有什么更好的做法希望可以分享下 (☆_☆)
网名:
34.203.213.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^