当前位置: 首页 > 科技观察

HostonlyCookie到底是什么?

时间:2023-03-12 07:13:04 科技观察

知道cookiehostonly属性的请举手??01Cookie常用姿势及故障排除目前w3c定义浏览器存储的每个cookie需要包含以下字段:cookie属性的基本描述ExampleRemarksname=valuecookiekey-valuepairid=a3fWaexpiresCookie过期时间expires=Tue,10-Jul-201308:30:18GMTsecure指定通过https请求发送cookie限制访问cookiehttponly表示是否允许通过JavaScriptDocument.cookieAPI访问cookie限制访问tocookiesdomain指定哪些主机可以接收cookiesDomain=mozilla.org;如果不设置,则等于当前页面domian定义发送cookiespath表示请求将携带cookies的路径Path=/docs定义发送cookies的samesite让服务器指定是否允许跨站请求携带cookiesSameSite=Laxcookie属性之间定义cookie发送到哪里;连接;多个cookie设置,生成多个Set-CookieheaderHTTP/1.0200OKContent-type:text/htmlSet-Cookie:yummy_cookie=chocoSet-Cookie:X-BAT-FullTicketId=TGT-969171-******;domain=bat.com;path=/;samesite=none;httponly[pagecontent]first-partycookie,third-partycookie:cookie跟domian密切相关,如果cookie的domain属性和你当前浏览页面的domain相同,则cookie称为第一方cookie;如果不同,则称为第三方cookie。第三方cookie通常用于广告投放和用户行为追踪,以上属性决定了后续请求能否正常访问cookie并携带cookie。其中与cookie安全密切相关的三个属性:securehttponlysamesite这三个cookie属性也是在单点登录和跨域访问点上经常遇到障碍的技术突破。02HostOnlycookie是什么鬼?今天介绍一个不常见的cookie属性hostonly,不过也给代码A造成了一点阻碍。浏览器。②判断逻辑:如果domain-attribute不为空:如果规范化的request-host与domain-attribute中的域名不匹配,则完全忽略cookie,终止这些步骤;否则,将cookie的host-only-flag设置为false,并将cookie的域设置为domain-attribute。否则:将cookie的host-only-flag设置为true,并将域设置为规范化的请求主机。03爬爬心得在做单点登录的时候,初衷是:将cookie的domain属性设置为父域名,请求子域名时自动携带cookie,但是事与愿违,子域服务器从未收到cookie。我坚信:成熟的技术一定有成熟的诊断姿态!成熟的技术必须有成熟的诊断姿态!成熟的技术必须有成熟的诊断姿态!Chrome浏览器开发者工具显示:疑点一:我的Cookie在请求子域时被过滤掉了。用鼠标悬停在黑色感叹号上显示这是一个hostonlycookie,这很奇怪。这个cookie的域值也是正常的,只是多了一个hostonly属性。疑点2:在原种cookie的响应流Set-Cookie头中,这个cookie的域键值对消失了。看我设置cookie的错误码:结合hostonly的判断逻辑,大概知道了。可能是我偷懒,把单点登录回调地址'bat.com/home'作为domain属性值,以为可以自动解析正常的domain。其实经过【响应流中的Set-Cookie头忽略cookie域属性】--->【hostonly判断逻辑】,事情已经失控了,解决问题的思路也很明确了。设置正确合法的域名属性值,才不会有后续的飞蛾扑火,在线验证有效。好久没更新了,不好意思!马哥其实还有很多内容要写。本文记录网站生产上线时无法跨站点携带cookie的问题,全面梳理cookie的难关姿势,介绍hostonly有趣的cookie属性。希望这次爬虫的经验能给大家带来一些帮助。