【问题标题】:Check if Cookie has Secure Flag set and update using JavaScript ONLY检查 Cookie 是否设置了安全标志并仅使用 JavaScript 进行更新
【发布时间】:2017-11-16 05:55:21
【问题描述】:

我的问题是我们使用 JS 设置了一些 cookie,有效期为 1 年,而该特定 cookie 没有设置安全标志。我们现在要更新 cookie 以设置安全标志。创建 cookie 的代码现在具有“安全”属性,并且所有新 cookie 都具有“安全”标志。问题是如何更新现有的 cookie?我假设我必须销毁 cookie,然后使用设置的安全标志重新创建它?不知道有没有其他方法可以做到这一点?还有一种方法可以使用 JavaScript 来检测 cookie 在删除之前是否设置了标志?

谢谢!

【问题讨论】:

  • 我认为没有办法在标准 Javascript 中读取 cookie 的属性(扩展可以做到这一点,但它们使用特定于浏览器的 API)。

标签: javascript security cookies


【解决方案1】:

您无法使用纯 JavaScript 检查 cookie 标志。如果要添加标志,只需创建一个新的cookie,浏览器将覆盖旧的。

例子:

在控制台输入:

const year = 60*60*24*365;
document.cookie = 'mytestcookie=1;max-age='+year;

并查看浏览器开发人员工具中的 cookie 选项卡。你会发现它是不安全的。 现在,输入:

document.cookie = 'mytestcookie=2;max-age='+year+';secure';

再看一遍。

【讨论】:

  • 所以我必须先删除然后重新创建 cookie,如果它没有过期,因为当前代码只会在它已经存在的情况下读取它,而不是尝试写入它。跨度>
  • @reski 的意思是,没有必要删除 cookie,一旦您使用新值设置相同的 cookie,浏览器就会覆盖旧的。
  • 没错,搜门。
  • 我明白他在说什么。我的观点是 cookie 在过期之前不会被覆盖。
猜你喜欢
  • 2018-03-25
  • 2011-03-09
  • 1970-01-01
  • 2016-09-11
  • 2016-02-18
  • 2012-03-10
  • 2017-09-11
  • 1970-01-01
相关资源
最近更新 更多