对于大多数现代浏览器,是否可以在启用Cookie时禁用会话或本地存储?或者,禁用cookie也会自动禁用会话/本地存储?
答案 0 :(得分:17)
从技术上讲,cookie和Web Storage API是不同的东西,但普通用户可能不知道差异,也不需要。但是,普通用户已经听说过cookie的安全问题。他也可能听过建议定期清除cookie或完全禁用它们。因此,普通用户需要一个“禁用Cookie ”的功能,但实际上意味着“不要让网站在我的计算机上保留数据”。
我相信这就是为什么大多数浏览器继续提供禁用“Cookies”的熟悉功能的原因,但当然要做的不仅仅是为了实现他们认为的实际用户意图。
目前,该行为取决于浏览器。在每个浏览器上禁用cookie会禁用以下内容:
我认为,为了精确和灵活,浏览器供应商应该调整他们的实现,以便有一个基本选项“不要让网站存储此计算机上的数据”,这会禁用cookie和所有持久存储机制,以及“高级设置”功能,可单独禁用各种存储机制。
答案 1 :(得分:11)
我能找到的只是W3C Web Storage Specification的§6.1:
将持久存储视为Cookie
如果用户尝试通过清除cookie而不清除存储在本地存储区域中的数据来保护其隐私,则站点可以通过将这两个功能用作彼此的冗余备份来抵消这些尝试。用户代理应提供用于清除这些接口的接口,以帮助用户了解这种可能性,并使他们能够同时删除所有持久存储功能中的数据。
浏览器“应该”同时删除,但不建议对本地存储和cookie进行单独的切换。
那就是说,在IE 11中,我能够disable DOM storage但是能够启用cookie。相反,禁用cookie对DOM存储没有影响。在FF& Chrome最新的禁用cookie似乎也禁用了DOM存储。
答案 2 :(得分:8)
如果禁用cookie,则本地存储将无效。我刚试过了。
请尝试以下步骤,将其检出
谷歌浏览器
step 1 :
Select the Chrome menu icon Chrome menu.
Select Settings.
Near the bottom of the page, select Show advanced settings.
In the "Privacy" section, select Content settings.
Select Block sites from setting any data.
Select Done.
Step 2 : Open browser console and type localstorage.name="test". This will throw below error
Uncaught DOMException: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
at Error (native)
at <anonymous>:2:1
at Object.InjectedScript._evaluateOn (<anonymous>:895:140)
at Object.InjectedScript._evaluateAndWrap (<anonymous>:828:34)
at Object.InjectedScript.evaluate (<anonymous>:694:21)
Step 3 : now enable cookie and try it out . Local Storage will work
的FireFox:
我在Firefox中测试过,它的工作方式相同。
请尝试以下步骤:
Step 1:
Click the menu button New Fx Menu and choose Options.
Select the Privacy panel.
Set Firefox will: to Use custom settings for history.
Now disable accept cookies from site
Step 2:
Open browser console and try localstorage.name="test" . This will fail as below
SecurityError: The operation is insecure.
Step 3:
Now enable cookie and try it will work.
因此,如果没有启用cookie,localstorage将无法在chrome和firefox上运行。