Cookies是前端数据存储的一种方式,由后端通过http头设置,发送请求时通过http头将值传给后端。前端也可以对Cookies进行读写操作。Cookies遵循同源策略。
Cookies特性:
1.域名
2.有效期
3.路径,仅在设置路径下的请求才会携带目标cookie
4.http-only,仅支持http协议
5.secure,仅支持https协议
Cookies作用:
1.存储个性化设置
2.存储未登录用户唯一标识
3.存储已经登录用户的凭证
1.前端提交用户名密码,2.后端验证用户名密码,3.后端通过http头设置用户凭证,4.后续访问时后端先验证用户凭证
用户id+签名:登录时可通过设置用户id+签名的方式防止保存用户id的Cookies被篡改。
SessionId:用户登录后将用户信息存储在内存或缓存中,返回一个对应的key设置到Cookies中,验证时通过key得到保存的用户信息。
4.存储其他业务数据
Cookies和XSS的关系:XSS可能偷取Cookies,http-only的Cookies不会被偷。
Cookies和CSRF的关系:CSRF携带了用户Cookies,但是攻击站点无法读写Cookies。防御时最好阻止第三方使用Cookies。
Cookies安全策略:1.签名防篡改,2.私有变换(加密),3.http-only(防止XSS),4.secure(仅支持htts协议),5.same-site