如何在 Firefox 中控制网站对 localStorage 的使用?

如何在 Firefox 中控制网站对 localStorage 的使用?

随着越来越多的网站从使用 cookie 切换到使用 localStorage 来存储数据(包括“跟踪错误”),我担心用户对此的控制程度。使用 cookie,可以设置适当的策略,例如阻止第三方 cookie,或始终询问。我找不到 localStorage 的相应设置。

搜索 SU,我发现 Chrome 也有类似的问题:禁用所有网页的 HTML5 LocalStorage 和数据库/或询问用户我也读过如何允许一个特定用户脚本的本地存储,但全局禁用它?(这并没有回答我的问题)Firefox 本地存储和缓存问题(其中还提到缺少文档,但并未回答我的问题)。我在 Google 搜索中几乎找不到任何内容。

一开始使用 SE 时,我遇到过一些问题(请参阅美索不达米亚)并解决了Eric 的博客让我假设 cookie 设置至少以某种方式连接到 localStorage ;但由于没有记录,我不想依赖一个 FF 版本的“try-and-err”来得出一般结论。

有这方面的文档吗?如果用户无法控制哪个网站将数据存储到 localStorage,我认为这是对隐私的严重侵犯,因此必须以某种方式实现。

总结:它是否根据 cookie 策略完成?如果不是,用户如何控制它?

答案1

Firefox 的 cookies 和 localstorage 之间的关系(来自https://bugzilla.mozilla.org/show_bug.cgi?id=341524):

  • 禁用 cookies 会禁用存储,除非该网站在白名单中。
  • 启用所有 cookie 即可启用存储,除非该网站在阻止列表中。
  • 如果网站在阻止列表中设置为仅会话,则只能使用会话存储。全局存储被视为会话存储。
  • 类似地,如果将 cookie 首选项设置为仅限会话,则所有存储使用都仅限会话
  • 如果将 cookie 首选项设置为提示,则这与拒绝 cookie 的处理方式相同。不确定我们是否希望在此处进行提示。每次设置 cookie 时都会提示 cookie,还是每个会话只提示一次?
  • 隐藏偏好设置 dom.storage.disabled 可用于禁用 DOM 存储。

因此,您应该能够使用 Cookie 管理器,例如饼干怪兽控制本地存储。

要在 Firefox 中查看/删除持久本地存储,您可以使用Foundstone HTML5 本地存储浏览器或者无踪迹. 其他相关 Firefox 扩展列表这里

如何在 Firefox、IE 和 Chrome 中清除和禁用 DOM 存储

清除 Firefox 中的 DOM 存储:

选择“工具” -> “清除最近历史记录”,打开“详细信息”,勾选“Cookies”,选择“全部”作为时间范围。
注意:其他时间范围均不会清除 DOM 存储。

[...]

在 Firefox 中禁用 DOM 存储:

在地址栏中输入“about:config”并按回车键查看内部浏览器设置。向下滚动到“dom.storage.enabled”,右键单击它并点击“切换”以禁用 DOM 存储。

绕过阻止“第三方”Cookie 的目的

从概念上讲,HTML5 本地存储与 Cookie 非常相似。每个源都有一组磁盘持久化的名称/值对。

通过简单的测试,很容易看出HTML5 Local Storage功能不受第三方cookie设置的影响。

Mozilla 知道此问题:Bug 536509 - localStorage 不遵守“第三方 cookies”首选项。幸运的是,如果您取消选中 Firefox 复选框“接受来自站点的 cookie”,则 localstorage 仅在 Firefox 的 cookie 例外列表中允许的域上启用。由于设置 localstorage 需要 JavaScript,因此 NoScript 等 JavaScript 阻止扩展也可以缓解此问题。

Localstorage 测试站点:

Firefox 问题:Bug 748620 - 当 cookie 过期设置为每次询问时,localStorage 会抛出安全异常

本答案中的所有信息均改编自DOM 存储:可以绕过阻止第三方 Cookie 意图的浏览器数据存储,这是我发起的一个帖子。

答案2

我是 Cookie Controller 插件的开发人员,它将向您显示适用于本地存储(和会话存储)的权限,并让您设置这些权限。

但是,回答你最初的问题,DOM 存储的权限与 cookie 的权限基本相同。某些权限(例如第三方权限)不适用,但拒绝 cookie 或将其限制在当前会话的设置也适用于 DOM 存储。不幸的是,Firefox 不会显示网页是否正在使用 DOM 存储,因此很难验证。因此,这个插件很有用。

还有一个隐藏的首选项,可以完全禁用所有独立于 cookie 的 DOM 存储:dom.storage.enabled。这有点残酷,通常您只需阻止 cookie 即可阻止存储。同样,设置为允许单个网站设置 cookie 的例外也允许它们使用 DOM 存储。

最后,每个网页可使用的存储空间量是有限制的。默认情况下,这个限制是 5MB,但你可以将其更改为零。不过,网页并不总是能很好地处理超出这个配额的情况,因此更改它可能会导致问题。

答案3

关于该功能的文档似乎并不多,但是这里这是来自 Mozilla 开发者网络的文章。文章中提及关于管理本地存储,仍有几个错误尚未解决(撰写此答案时,所有错误都尚未解决)。因此,至少目前看来,似乎没有任何方法可以管理对本地存储的访问。

答案4

刚刚找到一个解决方案(还没有尝试,但根据评论应该可以):有一个名为 Firefox 插件Cookie 控制器,它似乎可以处理“旧式”的 cookies 和 DOM 存储(不幸的是,Flash-cookies 又名 LSO 似乎没有被处理;这将使它成为完整的控制器):

Cookie 控制器:每个站点 Cookie 控制器:全局
Cookie 控制器:每个站点和全局设置

使用此插件,应该能够使用 localStorage 的全局和每个站点设置。由于 SE 站点需要 localStorage,因此这里优先使用每个站点设置 :) 它甚至提供在会话结束时删除选定的“cookie”(例如,除白名单外的所有 cookie)。

相关内容