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


14

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

搜索SU,我发现了一个类似的Chrome问题:对所有网页禁用HTML5 LocalStorage和数据库/或询问用户。我还阅读了如何为一个特定的用户脚本允许本地存储,但在全局范围内将其禁用?(无法回答我的问题)以及Firefox本地存储和缓存问题(还指出缺少文档,但无法回答我的问题)。我在Google搜索中几乎找不到任何内容。

最初我在SE方面遇到了麻烦(请参阅MSO),并通过Eric的Blog解决了问题,让我假设cookie设置至少以某种方式至少已连接到localStorage。但由于它没有记录,因此我不想依靠带有一个FF版本的“ try-and-err”来得出一般的结论。

是否有一些文档?如果用户无法控制哪个站点将数据存储到localStorage中,那么我认为这是对隐私的重大侵犯,因此一定有可能实现。

TL; DR:是否完成了与Cookie策略相对应的操作-否则,用户如何控制它?

Answers:


12

Firefox的cookie与本地存储之间的关系(来自https://bugzilla.mozilla.org/show_bug.cgi?id=341524):

  • 除非站点位于白名单上,否则禁用cookie会禁用存储。
  • 启用所有cookie将启用存储功能,但该站点位于阻止列表中除外。
  • 如果将站点设置为仅在阻止列表中进行会话,则只能使用会话存储。全局存储被视为会话存储。
  • 同样,如果cookie首选项设置为“仅会话”,则所有存储空间使用情况仅为“会话”
  • 如果cookie首选项设置为提示,则与拒绝cookie相同。不确定我们是否要在这里进行提示。Cookie是在每次设置Cookie时提示还是在每个会话一次提示?
  • 隐藏的首选项dom.storage.disabled可用于禁用DOM存储。

因此,您应该能够使用Cookie管理器(例如Cookie Monster)来控制本地存储。

要在Firefox中查看/删除持久性本地存储,可以使用Foundstone HTML5 Local Storage ExplorerNoTrace。其他相关的Firefox扩展程序在此处列出。

如何清除和禁用Firefox,IE和Chrome中的DOM存储

在Firefox中清除DOM存储:

选择“工具”->“清除最近的历史记录”,打开“详细信息”,选中“ Cookies”,然后选择“所有内容”作为时间范围。
注意:没有其他时间范围将清除DOM存储。

[...]

在Firefox中禁用DOM存储:

在地址栏中输入“ about:config”,然后按Enter键以查看内部浏览器设置。向下滚动到“ dom.storage.enabled”,右键单击它,然后单击“ Toggle”以禁用DOM Storage。

通过绕过阻止“第三方” cookie的意图

从概念上讲,HTML5本地存储与cookie非常相似。在每个来源的基础上,存在一组磁盘持久的名称/值对。

通过简单的测试,很容易表明HTML5本地存储功能不受第三方Cookie设置的影响。

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

本地存储测试站点:

Firefox问题:错误748620-将cookie过期时间设置为每次询问时,localStorage会引发安全异常

该答案中的所有信息均来自DOM存储:浏览器数据存储,可以绕过阻止第三方cookie(我启动的线程)的意图


非常感谢您的全面答复!没有细节可用:)是的,我已经使用Foundstone插件进行了一段时间的调查。还使用SQLiteman检查了相应的数据库。我所缺少的是您所填写的:当描述的cookie策略与我的匹配(取消选中该复选框,让非白名单的网站首先询问)时,我感到back不休:)
Izzy

别客气!也请参见我的答案中的错误748620。
MrBrian

这就是这里设置的。也不例外。也许此处使用LocalStorage的站点(例如SE)仅限于具有“完全cookie许可”的站点,所以我还没有被那个bug所困扰(至今)。是的,2012年的错误仍未解决。我完全记得我刚加入SE时,它就打了我(如我的问题所述),并且无法登录...
Izzy 2014年

2

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

但是,为回答您的原始问题,DOM存储的权限与cookie的权限基本相同。某些权限(例如第3方)不适用,但是拒绝cookie或将其限制为当前会话的设置也适用于DOM存储。不幸的是,Firefox不会向您显示网页是否正在使用DOM存储,因此可能难以验证。因此,该插件是有用的。

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

最后,每个网页可以使用的存储量受到限制。默认情况下,此大小为5MB,但您可以更改它,可能为零。但是,网页并不总是能够很好地处理此配额溢出问题,因此,通过更改配额可能会导致问题。


谢谢详细解释!我使用Cookie控制器已有一段时间了,对此我感到非常满意:)我仍然使用BetterPrivacy处理Flash-Cookies ;这是多合一解决方案唯一缺少的东西。但是两者彼此之间没有问题,所以对我来说很好。
Izzy 2013年

1

似乎没有被一大堆的功能文档,但这里是从Mozilla的开发者网络文章。它在文章中提到,关于管理本地存储,仍然存在一些错误(在编写此答案时,所有错误均已打开)。因此,至少在目前看来,没有任何方法可以管理对本地存储的访问。


谢谢。因此,看起来它与Flash cookie具有相同的隐私问题:没有技术背景,用户绝对无法控制它,而具有技术背景,则在“后处理”中只有有限的控制权。我担心这一点,您和链接的文章证实了这一点。因此,也许我们需要在某些Bugzilla Firefox票证中提出这个问题。
Izzy 2013年

0

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.