【问题标题】:Cannot delete some cookies with javascript无法使用 javascript 删除一些 cookie
【发布时间】:2020-06-11 10:41:15
【问题描述】:

我正在使用这段代码删除带有 javascript 的 cookie

var arrCookies = document.cookie.split(';');
for(var i = 0; i < arrCookies.length; i++){

                var key = arrCookies[i].split("=");
                //var new_value = key[0].trim()+"=; expires = Thu, 01 Jan 1970 00:00:00 UTC;path=/; domain=mydomain.com";
                //document.cookie = new_value;
                var new_value = key[0].trim()+"=; max-age=0; path=/; domain=.mydomain.com"; 
                document.cookie = new_value;
                new_value = key[0].trim()+"=; max-age=0;path=/; domain=.dev.mydomain.com";  
                document.cookie = new_value;
                new_value = key[0].trim()+"=; max-age=0;path=/; domain=dev.mydomain.com";
                document.cookie = new_value;
        }

但是有一些cookies被note删除了,它的cookies是HostOnly,不知道是不是巧合,可以删除hostonlycookies吗?如何?

【问题讨论】:

    标签: javascript cookies


    【解决方案1】:

    HostOnly cookie 只能从同一个域和子域访问(因此来自 foo.example.com 的 HostOnly cookie 不能被 example.com 读写)。

    更多关于 HostOnly 参数的信息:https://stackoverflow.com/a/28320172/3303059

    确保您尝试修改的 cookie 不是 HttpOnly。此类 cookie 仅在 HTTP 标头中发送,JavaScript 无法直接访问。这些通常是会话登录令牌,这个标志可以保护它们免受 XSS 漏洞的影响(因为任何注入的外部 JS 无论如何都无法读取它们)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-07
      • 1970-01-01
      • 2013-07-19
      • 2015-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多