cookie
- 小型文本文件 4kB 左右, 存储在用户端
- 分类:内寸 cookie(浏览器管理存储在内存中,浏览器关闭即失效);硬盘 cookie(存储在硬盘中,有过期时间,也可手动删除,较内存 cookie 存储时间长)
- 缺陷:安全性低,明文传递;存储小,复杂数据存储不了;增加流量,每个 http 请求中都会加入。
- 使用注意点:浏览器“回退”,cookie 不刷新
- cookie 攻击:盗取(用户信息获取,合法进入用户账户),投毒(cookie 回传一般认为是不做修改,攻击者对 cookie 篡改,进而达到一些目的)
设置 cookie
Set-Cookie: cookieName=cookieValue; your_cookie=cookieVal
-
设置有效期( Max-Age)或到期时间(Expires)
Set-Cookie: Max-Age=86400
Set-Cookie: Expires=Wed, 21 Oct 2015 07:28:00 GMT
-
设置限制访问 HttpOnly(设置后:document.cookie 获取不到)/Secure 只用于 https 协议
Set-Cookie: cookieName=cookieValue; HttpOnly;Secure
-
前端设置 cookie
document.cookie='cookieName=Asf123'
-
设置 cookie 作用域 Domain(可接收 cookie 的主机,如:
Domain=ezlost.com
,则develop.ezlost.com
可接收) / Path(主机下的可接收 cookie 的路径,以"/"符号作为分隔符,如:Path=/FE
,则www.ezlost.com/FE/webSafe
可匹配) -
设置 SameSite(允许服务器跨站请求不发送 cookie),阻止跨站请求伪造攻击。
Lax 为默认值,允许跨站请求需设置SameSite=None
SameSite=Strict
SameSite=Lax
与Strict
二者相似除用户从外部站点请求
应用
- 可以存储 Token,但需是简单的 Token
- 用户行为习惯分析
- 用户登录标识(服务器判断用户)