Cookie总结

Domain

Cookie的domain属性就是为了让浏览器根据页面请求路径的domain值,获取匹配的cookie,并把这些cookie发送给服务器。匹配规则如下:如果Cookie的domain为abc.com,则域名为abc.com, hello.abc.com, abcd.abc.com,即该域名以及该域名的子域名都可以访问。而如果cookie的domain为hello.abc.com上,则abc.com不可以访问该域名,只有hello.abc.com以及它的子域名可以访问。因此可以说cookie的domain访问权限是向下继承的,即子域名可以访问父域名的cookie而父域名不可以访问子域名的cookie。当然其它域名如autodesk.com等跨域名访问更是不可以的。

Cookie的设置权限同cookie的访问权限差不多,例如hello.abc.com可以将cookie的domain设为hello.abc.com或abc.com而不可以设置到它的子值域名如aaa.hello.abc.com。通常SSO就是将cookie的domain设为最顶级的域名,如autodesk.com,这样所有autodesk的子域名就都可以获取该cookie了。

Path

Path和Domain是两种最常见的限定cookie访问范围的手段,domain是以域名的方式,而path则是以目录的方式,因为很多时候,一个目录下有多个站点而又没办法设子域名时,通常就以目录的方式组织访问多站点,例如company.com/hr, company.com/job,因为概念上和domain很相似,因此访问/设置的限定也差不多:company.com/hr可以将cookie的path设置为company.com/, company/hr,而不可以设为company.com/hr/career或company.com/inside。

Expires – 过期时间

指定cookie的生命期。具体是值是过期日期。如果想让cookie的存在期限超过当前浏览器会话时间,就必须使用这个属性。当过了到期日期时,浏览器就可以删除cookie文件,没有任何影响。其实可以根据过期时间的设定方式把cookie分成两类: 硬盘cookie,是指在你设置了cookie的Expires属性,此时cookie将保存到你的硬盘上,关闭浏览器不会删除cookie,只有等cookie过期后才会被删除; 内存cookie,是指没有设在cookie的Expires的属性,此时cookie将停留在客户端的内存中,关闭浏览器后cookie将被删除,因此这种cookie的生命周期取决于浏览器的打开时间。

删除Cookie

没有直接的方法去删除cookie,如果要删除cookie,只需要将cookie的生命周期改成过去时间,浏览器会把过期的cookie删除掉。

Secure

指定cookie的值通过网络如何在用户和WEB服务器之间传递。这个属性的值或者是“secure”,或者为空。缺省情况下,该属性为空,也就是使用不安全的HTTP连接传递数据。如果一个 cookie 标记为secure,那么,它与WEB服务器之间就通过HTTPS或者其它安全协议传递数据。不过,设置了secure属性不代表其他人不能看到你机器本地保存的cookie。换句话说,把cookie设置为secure,只保证cookie与WEB服务器之间的数据传输过程加密,而保存在本地的cookie文件并不加密。如果想让本地cookie也加密,得自己加密数据。

HttpOnly

HttpOnly表示cookie只允许Http请求读取该cookie值,Javascript无法读取和修改该cookie值,这对于依赖cookie验证的网站来说安全性得到加强。

参考文档

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值