有没有办法阻止Web存储和IndexedDB有关架构的原因?

时间:2014-03-20 18:33:43

标签: javascript html5 indexeddb web-storage

Web存储(本地和会话)和IndexedDB都是客户端存储机制。他们都非常正确地坚持同源政策。但是,如果我有一个由http和https页面组成的网站,这会阻止我在我的https页面中读取写在我的http页面上的数据,反之亦然。

这是正确的行为,这种行为的原因很明显,但是......

......好吧,有时可能有点令人沮丧。如果我想存储非敏感数据以便在http和https页面上可用,那么能够做到这一点真的很棒(不需要使用cookie!)。

我认为没有办法实现这一目标,但我想如果我忽略了某些事情,我会把它扔掉。

非常感谢,

2 个答案:

答案 0 :(得分:3)

这是一个很好的问题,保罗!没有规避主机名限制,你应该注意这是设计上的。

我会在安全域提供的页面上实现您的IDB存储,然后通过postMessage跨协议与之交谈。这样,您就可以在httphttps页面上使用IDB商店。 (显然,这样做会导致不安全的内容警告。)

我自己没有尝试过,但是在Web Worker和客户端之间来回传输数据非常成功,所以我认为postMessage界面并没有太大的不同。虽然您可以通过postMessage传递哪些数据类型,但IDB中的所有数据都必须能够成为" structured cloned"无论如何意味着你不能存储功能等等,也不会错过这里。

答案 1 :(得分:0)

如果https数据能够通过http读取,则它是安全链中的薄弱环节。 Cookie api是一个错误。也没有理由使用http。