1

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

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

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

我不认为有任何方法可以做到这一点,但我想我会把它扔在那里,以防我忽略了一些东西。

非常感谢,

保罗

4

2 回答 2

3

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

我会在从安全域提供的页面上实现您的 IDB 存储,然后通过postMessage. 这样您就可以在httphttps页面上使用您的 IDB 存储。(显然,反之亦然会导致不安全的内容警告。)

我自己没有尝试过,但是在Web Worker和客户端之间来回发送数据方面取得了巨大的成功,所以我postMessage认为界面不会有太大的不同。尽管可以通过的数据类型存在限制,但postMessageIDB 中的所有数据都必须能够“结构化克隆”,这意味着您不能存储函数等,也不会在这里丢失。

于 2014-03-20T19:02:07.597 回答
0

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

于 2014-03-20T21:29:43.203 回答