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

时间:2016-05-15 04:51:52

标签: javascript security cookies get

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

非常感谢!

3 个答案:

答案 0 :(得分:38)

<强> TL:DR

document.cookie = "tagname = test;secure";

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

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

更多信息

Cookie属性:

  

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

     

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

     

域名 - 仔细检查域名设置。

     

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

     

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

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

Cookie Flags

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 });