失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 跨域Cookie的读取

跨域Cookie的读取

时间:2022-02-10 16:02:23

相关推荐

跨域Cookie的读取

cookie的几个属性

1 httpOnly:true 表示禁止客户端读cookie,即只能在服务端读取它

2 SameSite:用来限制第三方 Cookie,从而减少安全风险。

Strict最为严格,完全禁止第三方 Cookie,跨站点时,任何情况下都不会发送 Cookie。换言之,只有当前网页的 URL 与请求目标一致,才会带上 Cookie。

Set-Cookie: CookieName=CookieValue; SameSite=Strict;

Lax规则稍稍放宽,大多数情况也是不发送第三方 Cookie,但是导航到目标网址的 Get 请求除外。导航到目标网址的 GET 请求,只包括三种情况:链接,预加载请求,GET 表单。详见下表。

Set-Cookie: CookieName=CookieValue; SameSite=Lax;

Chrome 计划将Lax变为默认设置。这时,网站可以选择显式关闭SameSite属性,将其设为None。不过,前提是必须同时设置Secure属性(Cookie 只能通过 HTTPS 协议发送),否则无效。

Set-Cookie: widget_session=abc123; SameSite=None; Secure

需要明确的

跨域之后,不能读写cookie,例如a网站的cookie,b网站不能读到samesite:none可以让c网站的cookie,由不能的调用方共享修改,例如a网站操作c网站,c网站写自己的cookie,而b网站也操作c网站,这时c网站的cookie里是可以包含a网站的操作内容的

在keycloak中的应用

keycloak中的cookie,它的会话状态使用了SameSite,从而在由一个网站到别一个网站时,如果你已经登录,那这些登录信息会带到另一个网站去,这是由SameSite特性决定的,和开发的程序无关,我们之间使用kc的session通讯

Secure属性说明

Secure属性是说如果一个cookie被设置了Secure=true,那么这个cookie只能用https协议发送给服务器,用http协议是不发送的。换句话说,cookie是在https的情况下创建的,

而且他的Secure=true,那么之后你一直用https访问其他的页面(比如登录之后点击其他子页面),cookie会被发送到服务器,你无需重新登录就可以跳转到其他页面。但是如果这

是你把url改成http协议访问其他页面,你就需要重新登录了,因为这个cookie不能在http协议中发送,事实上,对于samesite属性为None时,因为只有secure为true它才合法,

所以这samesite=None也只能应用在https环境里。

https已经很安全,所以在它里面可以用 Samesite=None;Secure=true

浏览器对samesite和secure的默认值设置不同

谷歌

火狐

火狐这块更加宽松,跨站的cookie,http协议方式也是可以读到的,谷歌是不可以的。

最近整理了一系列的Java面试题,包含了Java基础、进阶、多线程、并发编程、数据库(MySQL、Redis、MongoDB、Memcachedd等等)、Spring全家桶、MyBatis、ZooKeeper、Dubbo、Elasticsearch、RabbitMQ、Kafka、Linux、Netty、Tomcat以及阿里、腾讯、字节、百度等大厂的面试真题,另外可以微信搜索539413949获取我为大家准备的资料

如果觉得《跨域Cookie的读取》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。