我试着用document.cookie = "tagname = test; secure"设置一个cookie,但是它没有设置安全标志。我设置错了吗?你只能从服务器响应设置它吗?我也想知道,因为我很难找到一个使用它的例子,它可能不是常用的?非常感谢!
document.cookie = "tagname = test; secure"
ars1skjm1#
TL:DR
document.cookie = "tagname = test;secure";
必须使用HTTPS设置安全属性
标准的(或者正式的,也许)名字是属性.因为标志指的是其他的东西.
详细信息
安全- Cookie将仅以HTTPS传输方式发送。HttpOnly-不允许脚本访问cookie。您可以同时设置安全和HttpOnly。域-指定cookie将发送到的主机。路径-创建作用域,仅当路径匹配时才发送cookie。过期-指示cookie的最长生存期。更多细节和实际应用。查看Testing_for_cookies_attributes_(OTG-SESS-002)
更新****以下内容将于2016年6月2日到期。
Cookie标志是前缀,目前在RFC draft中描述为RFC6265的更新
这些标志与“secure”属性一起使用。
__Secure-
破折号是前缀的一部分。这个标志告诉浏览器,cookie应该只包含在'https'中。
__Host-
带有此标志的Cookie
1.不能具有“domain”属性,它将仅发送到设置它的主机。1.必须具有“path”属性,该属性设置为“/”,因为它将在来自主机的每个请求中发送到主机。
polhcujo2#
因为该标志名为secure,而不是 security:
secure
xwbd5t1u3#
此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 });
v09wglhw4#
尽管服务器以大写字母响应,并以空格分隔:
set-cookie: x = y; Secure
客户端javascript需要将secure小写,并删除;后面的空格,如下所示:
;
document.cookie = `x=y;secure`;
否则,它将毫无效果。
eqoofvh95#
以下是针对ExpressJs用户的示例:设置安全Cookie
res.cookie("name", "value", { secure: true });
阅读此cookie
req.cookies["name"];
如果在cookie上设置了Secure属性,则只有当请求是通过HTTPS而不是通过HTTP发出时,浏览器才会将其包含在请求中。最佳做法是对敏感cookie使用此属性,因为它将保护它们不会通过不安全的连接发送。
Secure
HTTPS
HTTP
5条答案
按热度按时间ars1skjm1#
TL:DR
必须使用HTTPS设置安全属性
标准的(或者正式的,也许)名字是属性.因为标志指的是其他的东西.
详细信息
Cookie属性:
安全- Cookie将仅以HTTPS传输方式发送。
HttpOnly-不允许脚本访问cookie。您可以同时设置安全和HttpOnly。
域-指定cookie将发送到的主机。
路径-创建作用域,仅当路径匹配时才发送cookie。
过期-指示cookie的最长生存期。
更多细节和实际应用。查看Testing_for_cookies_attributes_(OTG-SESS-002)
更新****以下内容将于2016年6月2日到期。
Cookie标志
Cookie标志是前缀,目前在RFC draft中描述为RFC6265的更新
这些标志与“secure”属性一起使用。
破折号是前缀的一部分。这个标志告诉浏览器,cookie应该只包含在'https'中。
带有此标志的Cookie
1.不能具有“domain”属性,它将仅发送到设置它的主机。
1.必须具有“path”属性,该属性设置为“/”,因为它将在来自主机的每个请求中发送到主机。
polhcujo2#
因为该标志名为
secure
,而不是 security:xwbd5t1u3#
此cookie包易于使用@https://www.npmjs.com/package/js-cookie
v09wglhw4#
尽管服务器以大写字母响应,并以空格分隔:
客户端javascript需要将
secure
小写,并删除;
后面的空格,如下所示:否则,它将毫无效果。
eqoofvh95#
以下是针对ExpressJs用户的示例:
设置安全Cookie
阅读此cookie
如果在cookie上设置了
Secure
属性,则只有当请求是通过HTTPS
而不是通过HTTP
发出时,浏览器才会将其包含在请求中。最佳做法是对敏感cookie使用此属性,因为它将保护它们不会通过不安全的连接发送。