浏览器网络http之:cookie

cookie

  1. 小型文本文件,约4kB左右,存储在用户端。
  2. 分类:
    • 内存cookie(浏览器管理存储在内存中,浏览器关闭即失效)。
    • 硬盘cookie(存储在硬盘中,有过期时间,也可手动删除,较内存cookie存储时间长)。
  3. 缺陷:
    • 安全性低,明文传递。
    • 存储小,复杂数据存储不了。
    • 增加流量,每个HTTP请求中都会加入。
  4. 使用注意点:浏览器“回退”时,cookie不刷新。
  5. cookie攻击:
    • 盗取(用户信息获取,合法进入用户账户)。
    • 投毒(cookie回传一般认为是不做修改,攻击者对cookie篡改,进而达到一些目的)。

设置cookie

Set-Cookie: cookieName=cookieValue; your_cookie=cookieVal
  1. 设置有效期(Max-Age)或到期时间(Expires):
    Set-Cookie: Max-Age=86400
    Set-Cookie: Expires=Wed, 21 Oct 2015 07:28:00 GMT
  2. 设置限制访问:
    • HttpOnly(设置后:document.cookie获取不到)。
    • Secure(只用于HTTPS协议)。
      Set-Cookie: cookieName=cookieValue; HttpOnly; Secure
  3. 前端设置cookie:
    document.cookie='cookieName=Asf123'
  4. 设置cookie作用域:
    • Domain(可接收cookie的主机,如:Domain=ezlost.com,则develop.ezlost.com可接收)。
    • Path(主机下的可接收cookie的路径,以"/"符号作为分隔符,如:Path=/FE,则www.ezlost.com/FE/webSafe可匹配)。
  5. 设置SameSite(允许服务器跨站请求不发送cookie),阻止跨站请求伪造攻击:
    • Lax为默认值。
    • 允许跨站请求需设置SameSite=None
    • SameSite=Strict
    • SameSite=LaxStrict二者相似,除用户从外部站点请求。

应用

  1. 可以存储Token,但需是简单的Token。
  2. 用户行为习惯分析。
  3. 用户登录标识(服务器判断用户)。
上一篇
下一篇