问题描述
如果我创建函数:
function setCookie(name,value)
{
// this works:
// document.cookie=name + "=" + escape(value) + "; path=/;";
// this does not:
// document.cookie=name + "=" + escape(value) + "; path=/; secure; HttpOnly; SameSite=strict";
}
setCookie('my_cookie','some_random_value');
我不是 100% 知道为什么第二个选项不起作用。任何人有什么想法吗?
解决方法
见MDN:
JavaScript Document.cookie API 无法访问具有 HttpOnly 属性的 cookie;它只发送到服务器。例如,保留服务器端会话的 cookie 不需要对 JavaScript 可用,并且应该具有 HttpOnly 属性。这种预防措施有助于缓解跨站脚本 (XSS) 攻击。
你不能用 document.cookie
设置它,因为标志的全部点是防止它被设置(或读取)document.cookie
。