「这是我参与2022首次更文挑战的第13天,活动详情查看:2022首次更文挑战」
我们知道在谷歌浏览器的一些版本中,所有 Cookie 加上 SameSite=Lax 属性,并且拒绝非Secure的Cookie设为 SameSite=None
今天在设置设置cookie属性SameSite=None and Secure的时候,出现了SameSite和Secure
那么SameSite和Secure是什么?今天我们来简单聊聊
Secure
安全性,指定Cookie只能通过https协议访问,一般的Cookie使用HTTP协议即可访问。设置了Secure (没有值),只有当使用https协议连接时cookie才可以被页面访问。可用于防止信息在传递的过程中被监听捕获后信息泄漏。
SameSite
Chrome浏览器在51版本后为 Cookie 新增的属性,用来防止 CSRF 攻击和用户追踪,从源头屏蔽 CSRF漏洞。可以设置三个值:Strict、 Lax、 None。
Strict:完全禁止第三方Cookie,跨站点时,任何情况下都不会发送Cookie。换言之,只有当前网页的URL与请求目标一致,才会带上Cookie。Lax:规则稍稍放宽,大多数情况也是不发送第三方Cookie,但是导航到目标网址的Get请求除外。
设置了Strict或Lax以后,基本就杜绝了 CSRF 攻击。当然,前提是用户浏览器支持 SameSite属性。
None:Chrome计划将Lax变为默认设置。这时,网站可以选择显式关闭SameSite属性,将其设为None。不过,前提是必须同时设置Secure属性(Cookie只能通过HTTPS协议发送),否则无效。
所以,这个办法还要配合升级https协议才可以哦。
Cookie能够获取有一个大前提,不设置HttpOnly 属性。如果在Cookie中设置了HttpOnly属性,通过程序(JS脚本、Applet等)将无法读取到Cookie信息,防止程序获取cookie后进行攻击。
配置的Secure、SameSite和HttpOnly值,均可以在chrome里看到:HttpOnly属性会打勾
Secure和SameSite的nginx配置
http {
map $http_user_agent $samesite_attr {
"~*chrome" ';Secure;SameSite=None';
}
server {
location / {
...
proxy_cookie_path ~/(.*) "/$1$samesite_attr";
}
}
}
以上就是关于SameSite和Secure是什么的一些简记,如果喜欢记得点赞收藏啊