如何使用javascript设置cookie安全标志

Bob*_*ose 32 javascript security cookies get

我试图设置一个cookie document.cookie = "tagname = test; secure"但这没有设置安全标志.我说错了吗?你能从服务器响应中设置它吗?我也想知道,因为我很难找到一个使用它的例子,它可能不常用?

谢谢你!

Jac*_*cob 49

TL:DR

document.cookie = "tagname = test;secure";
Run Code Online (Sandbox Code Playgroud)

您必须使用HTTPS来设置安全属性

正常(或正式,可能)名称是属性.由于旗帜指的是其他东西(见下文).

更多信息

Cookie属性:

安全 - Cookie将以安全通道发送 - HTTPS

HttpOnly-不允许本地脚本读取cookie.

域 - 仔细检查域设置.

路径 - 仔细检查路径设置.

过期 - 确定用户代理如何解析或如何选择到期时间.

更多细节和实际用法.检查Testing_for_cookies_attributes_(OTG-SESS-002)

饼干标志

Cookie标志是前缀.目前,这些在RFC草案中被描述为RFC6265的更新

这些标志与'secure'属性一起使用.

__Secure-
Run Code Online (Sandbox Code Playgroud)

短划线是前缀的一部分.该标志告诉浏览器,cookie应仅包含在"https"中.

__Host-
Run Code Online (Sandbox Code Playgroud)

带有此标志的cookie 1)必须不具有"domain"属性,它将仅发送给设置它的主机.2)必须有一个'path'属性,设置为'/',因为它将在每次来自主机的任务中发送给主机.

我希望我没有任何误解的是,那些"正式文本"是稍微对我来说很难,更正或修改它,使之更具可读性将不胜感激.

  • 谢谢!问题是我试图在不使用HTTPS的情况下设置安全属性。 (2认同)

Mad*_*eka 5

这个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 });
Run Code Online (Sandbox Code Playgroud)