对于大多数现代浏览器,是否可以在启用 cookies 的同时禁用会话或本地存储?还是禁用 cookies 也会自动禁用会话/本地存储的使用?
对于大多数现代浏览器,是否可以在启用 cookies 的同时禁用会话或本地存储?还是禁用 cookies 也会自动禁用会话/本地存储的使用?
从技术角度来说,Cookies和Web Storage API是不同的东西,但一般用户可能不知道两者的区别,也没有必要知道。然而,一般用户已经听说过与Cookies相关的安全问题。他可能还听到过建议定期清除Cookies或完全禁用它们。因此,一般用户期望一个说“禁用Cookies”的功能,但实际上意味着“不要让网站在我的计算机上持久存储数据”。
我相信这就是为什么大多数浏览器继续提供熟悉的“禁用Cookies”功能,但当然在底层做了更多工作,以满足他们认为的实际用户意图。
目前,这种行为取决于浏览器。在以下每个浏览器上禁用Cookies会禁用以下内容:
我认为,为了精确性和灵活性,浏览器厂商应该调整他们的实现,提供一个基本选项“不要让网站在这台计算机上存储数据”,它会禁用Cookies和所有持久性存储机制,以及“高级设置”功能,以逐个禁用各种存储机制。
将持久存储视为cookie
如果用户尝试通过清除cookie而不清除本地存储区域中存储的数据来保护他们的隐私,那么网站可以使用这两个功能作为彼此冗余的备份来击败这些尝试。 用户代理应以帮助用户了解这种可能性并使其能够同时删除所有持久存储功能中的数据的方式呈现清除这些接口。
浏览器“应该”启用同时删除,但没有关于本地存储和cookie的单独切换的建议。
话虽如此,在IE 11中,我能够disable DOM storage但启用cookie。 相反,禁用cookie对DOM存储没有影响。 在FF和Chrome最新版本中,禁用cookie似乎也会禁用DOM存储。
如果您禁用了Cookie,那么本地存储将无法使用。我刚尝试过。
请尝试以下步骤进行验证:
Google Chrome
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
火狐浏览器:
我在火狐浏览器上测试过了,它的表现方式和其他浏览器一样。
请按照以下步骤进行尝试:
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.
因此,如果未启用cookies,则Chrome和Firefox上的本地存储将无法工作。