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
- 设置限制访问:
- 前端设置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。
- 用户行为习惯分析。
- 用户登录标识(服务器判断用户)。