最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • hostonly cookie 是什么鬼? - 掘金

    正文概述 掘金(掘金码甲哥)   2021-11-10   541

    hostonly cookie 是什么鬼? - 掘金

    Cookie常见姿势、疑难梳理

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

    cookie属性基本描述举例备注
    name=valuecookie键值对id=a3fWaexpirescookie过期时间expires=Tue, 10-Jul-2013 08:30:18 GMTsecure指定通过https请求发送cookieRestrict access to cookieshttponly指示是否允许通过JavaScript Document.cookie API访问cookieRestrict access to cookiesdomain指定哪些主机可以接收cookieDomain=mozilla.org; 不设置则等于当前页面domianDefine where cookies are sentpath指示哪些路径的请求会发送cookiePath=/docsDefine where cookies are sentsamesite让服务器指定是否允许跨站请求发送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安全密切相关的三个属性:

    • secure
    • httponly
    • samesite

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

    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。
    

    爬坑经历

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

    hostonly cookie 是什么鬼? - 掘金

    我坚信:

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

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

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

    hostonly cookie 是什么鬼? - 掘金

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

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

    hostonly cookie 是什么鬼? - 掘金 结合hostonly的判断逻辑, 我大概知道了。

    hostonly cookie 是什么鬼? - 掘金

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

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


    许久未更,见谅!码甲哥其实有很多内容想写,时间有限,与子同程。

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

    • 全面梳理了Cookie的疑难姿势
    • 顺势引出了hostonly这个有点意思的cookie属性
    • 希望本次的爬坑经历能给大家带来帮助

    下载网 » hostonly cookie 是什么鬼? - 掘金

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元