即使禁用了cookie,仍可以在IE11上访问document.cookie

Deb*_*e A 5 javascript cookies internet-explorer internet-explorer-11

使用IE11,即使将我的隐私设置为“阻止所有Cookie”,我也可以显示所有Cookie的内容,写出一个Cookie,找到它,然后使用JavaScript删除它。(实际上,无论我将IE仿真器设置为哪个版本,document.cookie仍然可以使用。)它在禁用了cookie的Chrome上应能正常工作-即,当我尝试在浏览器中引用它时,document.cookie返回空/空相同的JavaScript。

我正在尝试检测用户是否在IE中关闭了Cookie。(需要ASP带有IE的旧ASP应用程序。没有JQuery。没有Modernizr。)为此,我试图写出一个cookie,找到它,然后将其删除。这要么起作用,要么不起作用-这应该告诉我cookie是打开还是关闭。有任何想法吗?我认为这是检测用户的IE cookie设置的最安全方法。

我的代码:

<script language=javascript>
     cookiesON = false;
     if ("cookie" in document ) {
         alert("1. document.cookie (before add): " + document.cookie);

         var dateNow = new Date();
         document.cookie = "testcookie=" + new Date()
         alert("2. document.cookie (after add): " + document.cookie);

         if (document.cookie.indexOf("testcookie=") > -1) {
            cookiesON  = true;
         } else {
            cookiesON  = false;
         }

         // delete cookie: set cookie to expire 2 minutes ago
         document.cookie="testcookie=xx; expires=" + (new Date(dateNow.getTime() - 2*60000).toGMTString());
         alert("3. document.cookie (after delete): " + document.cookie);
      }
Run Code Online (Sandbox Code Playgroud)

在IE上:无论打开还是关闭cookie,所有3个警报都会显示document.cookie的值。您可以看到正在添加和删除的testcookie。

在Chrome上:关闭Cookie后,所有3个警报的document.cookie均显示为空白。启用cookie时,按IE所述工作。