Cookie各属性的作用

Cookie是什么

由于HTTP协议是一种无状态协议,服务端是无法根据网络连接来区别不同用户身份的。Cookie在这种情况下充当了一个通行证的作用,服务器就可以根据Cookie来确认用户身份了。

Cookie实际上是一小段文本信息,通常情况下是通过HTTP HEADER进行发送和接收。

image

image

Cookie的几个常用属性

cookie的值是已键值对表示的,除开Cookie带的值,还有一些用于表示过期时间和用于安全目的的属性。

  • name Cookie值的键

  • value Cookie值的内容

  • domain 表示可以访问该Cookie的域名

  • path 可以访问该Cookie的页面路径。常见的值有/

  • expires Cookie的超时时间,到达时间则失效。

  • size Cookie的大小,这个不常见

  • http-only 表明该Cookie只能在http头中传输,js不能访问到

  • secure 表明Cookie只能在使用https协议的传输,使用http协议时不会传输。这里遇到一个坑点,当把secure属性去掉之后,需要重启浏览器才能生效。

Cookie的几个作用

session管理: 常见的是session_id这个Cookie,在http访问的过程用于用户身份的标识。

个性化 : 这个可见于购物车

user tracking: 追踪用户行为,貌似很多广告就是因为这个。

针对Cookie的攻击手段

Cookie窃取,例如通过站点的xss漏洞可能窃取到用户浏览器的Cookie。

Cookie欺骗,因为Cookie是用户可控的,如果某些敏感字段写在Cookie里边,很容易被恶意篡改。