HTML5本地存储数据是不是按域分隔存储[重复]

Posted

技术标签:

【中文标题】HTML5本地存储数据是不是按域分隔存储[重复]【英文标题】:Is HTML5 Local Storage data stored seperated by domain [duplicate]HTML5本地存储数据是否按域分隔存储[重复] 【发布时间】:2013-04-08 19:14:52 【问题描述】:

我尝试过查看 html5 本地存储,但似乎找不到直接的答案。

本地存储是否像 cookie 一样基于域存储其对象?

如果是,我如何从另一个域访问它?

【问题讨论】:

***.com/questions/4201239/… 【参考方案1】:

如果是,我如何从另一个域访问它?

你不能。

LocalStorage 数据是根据网页的域创建的。然后只能从同一域下的网页访问该数据。

这就是为什么这是一个好主意: 您希望像hackerz.pwn 这样的网站能够读取/写入/删除它吗?

Example (page on www.yourbank.com):
window.localStorage.setItem("user_session",  "1234567");

【讨论】:

这就是我的想法,我认为这将是一个巨大的安全漏洞。所以只是好奇,*** 是如何设法使用 localstorage 处理全局身份验证的,他们声明它存储在 stackauth.com 域下。【参考方案2】:

来自the spec:

当最初由localStorage 属性返回的Storage 对象的任何成员被有效脚本来源与@987654325 的来源不同的脚本访问时,用户代理必须抛出SecurityError 异常访问了 localStorage 属性的 Window 对象的 @。

您无法从存储在localStorage 中的任何域以外的任何域访问存储在localStorage 中的数据。它遵循与XMLHttpRequest 相同的模型——“同源策略”。

【讨论】:

注意:域 !== 原点,原点基于域。 @Alnitak - 是的,但是 OP 专门询问来自另一个域的访问。 是的,但是从纯DNS的角度来看,域的不同子域仍然是不同的域,即使它们可能具有相同的来源

以上是关于HTML5本地存储数据是不是按域分隔存储[重复]的主要内容,如果未能解决你的问题,请参考以下文章

HTML5:在本地存储上使用数组 [重复]

HTML5 本地存储与会话存储

带有数组的 HTML 5 本地存储 [重复]

HTML5 本地存储 - 存储和加载已下载一次的 CSS

您可以使用 HTML5 本地存储来存储文件吗?如果没有,怎么办?

从 Angular2 访问 HTML5 本地存储