Hostonly cookie是什么鬼?

b0db177f5ed0eb9637d0adc0df079bd3.gif

点击上方蓝字关注我们吧

e2b58c6da68706827b7f5debbc3546c0.png

知道cookie hostonly属性的请举手🧐

01

Cookie常见姿势、疑难梳理

目前w3c定义浏览器存放每个cookie需要包含以下字段:

cookie属性基本描述举例备注
name=valuecookie键值对id=a3fWa
expirescookie过期时间expires=Tue, 10-Jul-2013 08:30:18 GMT
secure指定通过https请求发送cookie
Restrict access to cookies
httponly指示是否允许通过JavaScript Document.cookie API访问cookie
Restrict access to cookies
domain指定哪些主机可以接收cookieDomain=mozilla.org;   不设置则等于当前页面domianDefine where cookies are sent
path指示哪些路径的请求会携带cookiePath=/docsDefine where cookies are sent
samesite让服务器指定是否允许跨站请求携带cookieSameSite=LaxDefine where cookies are sent

cookie属性之间用;连接;多个cookie设置,产生多次Set-Cookieheader

HTTP/1.0 200 OK
Content-type: text/html
Set-Cookie: yummy_cookie=choco
Set-Cookie: X-BAT-FullTicketId=TGT-969171-******;domain=bat.com; path=/; samesite=none; httponly[page content]

第一方cookie、第三方cookie:
cookie与domian密切相关,如果cookie的domain属性与你当前查看的页面的domain相同,cookie被称为第一方cookie;
如果不同,则称为第三方cookie, 第三方cookie通常用于广告和用户行为追踪。

以上属性决定了后续请求能否正常访问cookie并携带cookie, 其中与cookie安全密切相关的三个属性:

  • secure

  • httponly

  • samesite

这三个cookie属性也是单点登录、跨域访问常遇到的阻碍的技术突破点。

 10分钟掌握cookie全貌

[ASP.NET Core 3.1]浏览器嗅探解决部分浏览器丢失Cookie问题

02

HostOnly cookie是什么鬼?

今天介绍一个不常见的cookie的属性hostonly,但是也曾给码甲哥造成了一点阻碍。

① 这是一个不可手动修改的cookie属性,类似 Sec-Fetch-、 Origin标头,都是浏览器自动判断并赋值。

② 判断逻辑:

如果domain-attribute非空:如果规范化之后的request-host不匹配domain-attribute  
中的域名,那么完全忽略掉cookie并且终止这些步骤;否则,将cookie的host-only-flag  
设定为false,并且将cookie的domain设定为domain-attribute。    
否则:将cookie的host-only-flag设定为true,并且将domain设定为规范化之后的request-host。

03

爬坑经历

我当时在做一个 单点登录的时候,原意图是: 设置cookie的domain属性为父域名,向子域名请求时能自动携带cookie, 但事与愿违,子域服务器始终收不到cookie。

865bffe4d6f84184743262b071e2ee3b.gif

我坚信:

成熟的技术一定会有成熟的诊断姿势!
成熟的技术一定会有成熟的诊断姿势!
成熟的技术一定会有成熟的诊断姿势!

Chrome浏览器开发者工具显示:

疑点1:我的这个cookie在请求子域时被滤除了。

eaa2282d5bdd382a5404b01a6a5fb16f.png

鼠标悬停黑色感叹号,显示我这是一个hostonly cookie, 这就奇怪了,这个cookie的domain值也是正常的,但是多了一个hostonly属性。


疑点2:在原种植cookie的响应流Set-Cookie header,这个cookie的domain键值对消失了。

围观我设置Cookie的错误代码:

20552fda1d8f290470be35b0a4862b83.png结合hostonly的判断逻辑, 我大概知道了。

712fe6102c7dfe82d52a6e72f4f6fb72.png

大概就是我偷懒使用了单点登录的回调地址'bat.com/home'作为domain属性值,以为能自动解析出正常的domain。

实际上经历了【响应流中的Set-Cookie header 忽略cookie domain属性】---> 【hostonly判断逻辑】, 事情已经失控了,解决问题的办法也很明确,设置正确合法的domain属性值,就不会出现后续的幺蛾子,上线验证有效。


许久未更,见谅!码甲哥其实有很多内容想写,来日方长,与子同程。

本文记录了某web站点上线生产遇到的跨站点无法携带cookie问题,

  • 全面梳理了Cookie的疑难姿势

  • 顺势引出了hostonly这个有点意思的cookie属性

  • 希望本次的爬坑经历能给大家带来一点帮助

ee19c24264214d0a2195cb9693bd634f.gif

●实时通信技术大乱斗

●SignalR 开发到生产部署闭坑指南

SignalR在React/Go技术栈的实践

●大前端快闪四:这次使用一个舒服的姿势插入HttpClient拦截器

●大前端快闪三:多环境灵活配置react

●大前端快闪二:react开发模式 一键启动多个服务

●大前端快闪:package.json文件知多少?

●难缠的布隆过滤器,这次终于通透了

原创不易,点“赞”163fffc30afeb2468c122378e73834e5.gif“在看”0de04108ea206307f6c9decc5c3c04a8.gif

体现态度很有必要!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/295824.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android之文件读写

一、基本概念 在Android应用中保存文件,保存的位置有两处 ①手机自带的存储空间,较小(如200M),适合保存一些小文件,Android中保存位置在data/data/应用包名/files目录 ②外存储设备如SD卡,较大,适合保存大文件如视频,Android中保存位置在mnt/sdcard目录,保存在sdcar…

系统即将关机请保存关机是由nt_设置Windows电脑自动关机

为了减少长时间沉迷电脑而忘记时间,设置Windows电脑自动关机是必要的事。 在我的电脑里,每到晚上10点都会自动关机。当然不会立刻关机,而是设置了1分钟的预留时间给自己保存一些文档资料。 Windows内建的Shutdown指令让人很方便的对这些进行操…

华为网络设备上的常用安全技术(一)

安全技术1:ACL 说明:ACL (Access Control List,访问控制列表)主要用来实现流识别功能。网络设备为过滤数据包,需要配置一系列的匹配规则,以识别需要过滤的报文。在识别出特定的报文之后&#xf…

【F12一下,看看页面里的第一行】——说说浏览器兼容性模式

面试官:请你谈谈标准(Standards)模式、怪异(Quirks)模式、准标准(Almost Standards)模式,当你打开IE9时候会看见,浏览器模式,文档模式,兼容性视图,这些又是什么? 尼玛啊......这些都是什么鸟东西…

java学习第七天

2019独角兽企业重金招聘Python工程师标准>>> 内部类 在类的内部也可以定义另一个类 ------------------------------------------------------------//类嵌套类,类中带有类//内部类跟方法一样,可以使用全部的访问权限修饰符,用法是一样的 接口 Int…

大一计算机课实训总结1000字,大一计算机实训报告.doc

文档介绍:大一计算机实训报告.doc大一计算机实训报告总结及相关经验当迈入中南大学的第一刻时,我知道我的新的生活开始了。而不知不觉第一学期即将在漫漫寒冬中结束,计算机课上有很多感受,是应该对自己所学有个总结的时候了。计算机应用是实践性很强的课程,它要求我…

并不是每个女生都能穿出这种效果......

1 阿姨,我需要一个你▼2 像极了是悬空的...▼3 放弃吧,整点阳间的...▼4 一个人如何自拍?(Twitter:Kskb_Tsuki)▼5 哥哥表示睡着了就把她饼干吃了...(via.dy俩小小赵)▼6 敲法器…

手把手教你学Dapr - 1. .Net开发者的大时代

Dapr全称Distributed Application Runtime,分布式应用运行时Dapr的口号简化云原生应用开发,聚焦在应用的核心逻辑,让代码简单、可移植Dapr的目标最佳实践的构建块任何语言或框架一致性,可移植,开放的API采纳标准可扩展…

Andorid之网络通信框架Volley使用和总结

Volley Volley 是 Google 推出的 Android 异步网络请求框架和图片加载框架。在 Google I/O 2013 大会上发布。 从名字由来和配图中无数急促的火箭可以看出 Volley 的特点:特别适合数据量小,通信频繁的网络操作

如何进行服务器选购[转]

各大服务器厂商为了更突出产品热点:开始在服务、方案方面进行花样翻新、包装,但万变不离其中,不管厂商们怎么样包装,只要我们抓住重点分析,希望下面的文章能够为您提供一些参考与帮助:详情点击:…

闲鱼有微信小程序吗_微信小程序商品展示页面(仿咸鱼)

项目中做了一个商品发布展示的页面,记录下来解决问题:想在setData中更改数组具体下标中的某个值let one "lowMoney[" 0 "].money";this.setData({[one]: (product.currentPrice * 0.1).toFixed(2), //1折})快去发布商品吧~~~已下…

objective-c中的static

在方法之外定义的变量不仅是全局变量,还是外部变量.但是很多场合,我们只需要定义为全局变量,并不是外部变量.也就是说希望定义的全局变量只在特定文件中是全局的,这个变量也只有在特定的类中的方法能访问,再也没有其他方法需要访问这个变量了. 这就引出了static. 被static修饰过…

电子计算机制作探测,如何自己制作一个简易的金属探测器

这是一个金属探测电路,它可以隔着地毯探测出地毯下的硬币或金属片。这个小装置很适合动手自制。一、元器件的准备电路中的NPN型三极管型号为9014,三极管VT1的放大倍数不要太大,这样可以提高电路的灵敏度。VD1-VD2为1N4148。电阻均为1/8W。金属…

“对不起,我们只招父母毕业于名牌院校的孩子”:最可怕的,是你还以为学历不重要...

全世界只有3.14 % 的人关注了爆炸吧知识1 近日,有一条新闻引发网友热议。成都某小学入学面试,要求家长除了带照片和身份证件之外,还要带“父母学历证书原件及复印件”。网上有种说法,该小学筛选的标准是父母毕业于211院校。后来眼…

.NET 6 对 StackOverflow 的优化

.NET 6 对 StackOverflow 的优化Intro去年写了一系列的傻逼代码, 其中有一篇 写了多年代码,你会 StackOverflow 吗,昨天一不小心又写了一个 StackOverflow 代码。。然后想把新的代码加到原来 StackOverflow 的示例中,把原来的示例项目改成了 …

【原】python中文文本挖掘资料集合

这些网址是我在学习python中文文本挖掘时觉得比较好的网站,记录一下,后期也会不定期添加:1.http://www.52nlp.cn/python-%E7%BD%91%E9%A1%B5%E7%88%AC%E8%99%AB-%E6%96%87%E6%9C%AC%E5%A4%84%E7%90%86-%E7%A7%91%E5%AD%A6%E8%AE%A1%E7%AE%97-…

Android之从网络上获取图片的两种方式讲解:thread+handle和AsyncTask方式

从网络上获取图片是一个比较耗时的操作,放在主线程会导致阻塞主线程,响应超时,所以我们不能把它放在主线程里操作,必须放在一个子线程里,我打算采用两种方式去实现。1、采用thread去获取图片,获取到后通过handle把消息发送到与主线程绑定的消息队列中(也就是主线程的loo…

freeware

http://www.nirsoft.net/utils/iconsext.html转载于:https://www.cnblogs.com/androidme/archive/2013/03/13/2957509.html

卸载wrapt_[python] 安装TensorFlow问题 解决Cannot uninstall 'wrapt'. It is a distutils installed project...

cmd安装 pip install tensorflow1.遇到了ERROR: Cannot uninstall wrapt. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.办法1:输入 pip install -U --ig…

推荐16款非常有创意的婚礼请贴

为什么80%的码农都做不了架构师?>>> 日期:2012-4-5 来源:GBin1.com 婚约是标志着你和你的伴侣很快就要有新的开始了,一起开始那段新的历程!婚礼是整个人生旅途中的一个重要里程碑,在婚礼的邀请…