cookie笔记 | 青训营笔记

110 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第4天

cookie

cookie是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下一次向同一服务器再发起请求时被携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器,保持用户的登录状态。cookie使基于无状态的HTTP协议记录稳定的状态信息成为了可能。

创建cookie:当服务器收到http请求时,服务器可以在响应头添加set-cookie选项。浏览器收到响应后通常会保存cookie,之后对该服务器每次请求都通过cookie请求头部将cookie信息发送给服务器。另外,cookie的过期时间、域、路径、有效期都可以根据需要来指定

限制访问cookie:两种方法能确保cookie被安全发送,并且不会被意外的参与者或脚本访问:Secure属性和HttpOnly属性

标记为Secure的cookie只能通过被HTTPS协议加密过的请求发送给服务端,因此可以预防中间人攻击。但是即使设置了secure标记,也不应该用cookie传递敏感信息,因为cookie本身是不安全的,例如可以访问客户端硬盘的人可以读取它

Javascript的Document.cookie API无法访问带有HttpOnly属性的cookie;此类cookie仅作用于服务器。例如,持久化服务器端会话的cookie不需要对JavaScript可用,而应具有HttpOnly属性。此预防措施有助于缓解跨站脚本攻击。

Cookie的作用域:Domain和Path标识定义了Cookie的作用域:即允许Cookie应该发送给哪些URL

Domin:Domin指定了哪些主机(大致为域名的意思)可以接受Cookie。如果不指定,默认为origin,不包含子域名。如果指定了Domin,则一般包含子域名。因此指定Domin比省略它的限制要少。

Path属性:Path标识指定了主机下的哪些路径可以接受Cookie,以字符%x2F(“/”)作为分割