我尝试使用document.cookie = "tagname = test; secure"
设置Cookie,但这不会设置安全标志。我说错了吗?你能从服务器响应中设置它吗?我也想知道,因为我很难找到一个使用它的例子,它可能不常用?
非常感谢!
答案 0 :(得分:38)
<强> TL:DR 强>
document.cookie = "tagname = test;secure";
您必须使用HTTPS来设置安全属性
正常(或正式,可能)名称是属性。由于旗帜指的是其他东西(见下文)。
更多信息
安全 - Cookie将以安全通道发送 - HTTPS
HttpOnly-不允许本地脚本读取cookie。
域名 - 仔细检查域名设置。
路径 - 仔细检查路径设置。
过期 - 确定用户代理如何解析或如何选择到期时间。
更多细节和实际用法。查看Testing_for_cookies_attributes_(OTG-SESS-002)
Cookie标志是前缀。目前,这些内容在RFC draft中描述为对RFC6265
的更新这些标记与'secure'属性一起使用。
__Secure-
破折号是前缀的一部分。该标志告诉浏览器,cookie应仅包含在“https”中。
__Host-
带有此标志的cookie 1)不得具有“domain”属性,它将仅发送给设置它的主机。 2)必须有一个'path'属性,设置为'/',因为它将在每次来自主机的任务中发送给主机。
我希望我没有误解其中的任何内容,那些“正式文本”对我来说有点难度,正确或编辑它以使其更具可读性将会受到赞赏。
答案 1 :(得分:1)
因为该标志名为secure
,而不是安全:
document.cookie = "tagname = test;secure";
答案 2 :(得分:0)
此Cookie软件包易于使用@ https://www.npmjs.com/package/js-cookie
//to set cookie use
Cookies.set('name', 'value', { expires: 7, path: '' });
//to read the cookie, use
Cookies.get('name'); // => 'value'
//to delete cookie this
Cookies.remove('name')
//to set secure cookie this
Cookies.set('name', 'value', { secure: true });