cookie

323 阅读1分钟

问题

验证码的接口发现response headers的set-cookie设置不上,确定是cookie的secure属性限制了只能被https的协议解析到

cookie设置

正常前端设置 withCredentials: true ,后端配置 Access-Control-Allow-Credentials: true,Access-Control-Allow-Origin: 不为* cookie便可以设置上

cookie属性介绍

secure

当设置为true时,表示创建的 Cookie 会被以安全的形式向服务器传输,也就是只能在 HTTPS 连接中被浏览器传递到服务器端进行会话验证,如果是 HTTP 连接则不会传递该信息,所以不会被窃取到Cookie 的具体内容。

httpOnly

如果在Cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本、Applet等)将无法读取到Cookie信息,这样能有效的防止XSS攻击。 对于以上两个属性, 首先,secure属性是防止信息在传递的过程中被监听捕获后信息泄漏,HttpOnly属性的目的是防止程序获取cookie后进行攻击。

domain

表示的是cookie所在的域,

path

表示cookie所在的目录

expires/max-age

cookie生存时间

SameSite

属性用来限制第三方 Cookie,从而减少安全风险。

Priority

优先级,chrome的提案,定义了三种优先级,Low/Medium/High,当cookie数量超出时,低优先级的cookie会被优先清除。

参考文章

Cookie的所有属性详解