日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Hostonly cookie是什么鬼?

發(fā)布時(shí)間:2023/12/4 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hostonly cookie是什么鬼? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

點(diǎn)擊上方藍(lán)字關(guān)注我們吧

知道cookie hostonly屬性的請(qǐng)舉手🧐

01

Cookie常見(jiàn)姿勢(shì)、疑難梳理

目前w3c定義瀏覽器存放每個(gè)cookie需要包含以下字段:

cookie屬性基本描述舉例備注
name=valuecookie鍵值對(duì)id=a3fWa
expirescookie過(guò)期時(shí)間expires=Tue, 10-Jul-2013 08:30:18 GMT
secure指定通過(guò)https請(qǐng)求發(fā)送cookie
Restrict access to cookies
httponly指示是否允許通過(guò)JavaScript Document.cookie API訪問(wèn)cookie
Restrict access to cookies
domain指定哪些主機(jī)可以接收cookieDomain=mozilla.org;? ?不設(shè)置則等于當(dāng)前頁(yè)面domianDefine where cookies are sent
path指示哪些路徑的請(qǐng)求會(huì)攜帶cookiePath=/docsDefine where cookies are sent
samesite讓服務(wù)器指定是否允許跨站請(qǐng)求攜帶cookieSameSite=LaxDefine where cookies are sent

cookie屬性之間用;連接;多個(gè)cookie設(shè)置,產(chǎn)生多次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密切相關(guān),如果cookie的domain屬性與你當(dāng)前查看的頁(yè)面的domain相同,cookie被稱為第一方cookie;
如果不同,則稱為第三方cookie, 第三方cookie通常用于廣告和用戶行為追蹤。

以上屬性決定了后續(xù)請(qǐng)求能否正常訪問(wèn)cookie并攜帶cookie, 其中與cookie安全密切相關(guān)的三個(gè)屬性:

  • secure

  • httponly

  • samesite

這三個(gè)cookie屬性也是單點(diǎn)登錄、跨域訪問(wèn)常遇到的阻礙的技術(shù)突破點(diǎn)。

?10分鐘掌握cookie全貌

[ASP.NET Core 3.1]瀏覽器嗅探解決部分瀏覽器丟失Cookie問(wèn)題

02

HostOnly cookie是什么鬼?

今天介紹一個(gè)不常見(jiàn)的cookie的屬性hostonly,但是也曾給碼甲哥造成了一點(diǎn)阻礙。

① 這是一個(gè)不可手動(dòng)修改的cookie屬性,類似 Sec-Fetch-、 Origin標(biāo)頭,都是瀏覽器自動(dòng)判斷并賦值。

② 判斷邏輯:

如果domain-attribute非空:如果規(guī)范化之后的request-host不匹配domain-attribute ? 中的域名,那么完全忽略掉cookie并且終止這些步驟;否則,將cookie的host-only-flag ? 設(shè)定為false,并且將cookie的domain設(shè)定為domain-attribute。???? 否則:將cookie的host-only-flag設(shè)定為true,并且將domain設(shè)定為規(guī)范化之后的request-host。

03

爬坑經(jīng)歷

我當(dāng)時(shí)在做一個(gè) 單點(diǎn)登錄的時(shí)候,原意圖是:?設(shè)置cookie的domain屬性為父域名,向子域名請(qǐng)求時(shí)能自動(dòng)攜帶cookie, 但事與愿違,子域服務(wù)器始終收不到cookie。

我堅(jiān)信:

成熟的技術(shù)一定會(huì)有成熟的診斷姿勢(shì)!
成熟的技術(shù)一定會(huì)有成熟的診斷姿勢(shì)!
成熟的技術(shù)一定會(huì)有成熟的診斷姿勢(shì)!

Chrome瀏覽器開(kāi)發(fā)者工具顯示:

疑點(diǎn)1:我的這個(gè)cookie在請(qǐng)求子域時(shí)被濾除了。

鼠標(biāo)懸停黑色感嘆號(hào),顯示我這是一個(gè)hostonly cookie, 這就奇怪了,這個(gè)cookie的domain值也是正常的,但是多了一個(gè)hostonly屬性。


疑點(diǎn)2:在原種植cookie的響應(yīng)流Set-Cookie header,這個(gè)cookie的domain鍵值對(duì)消失了。

圍觀我設(shè)置Cookie的錯(cuò)誤代碼:

結(jié)合hostonly的判斷邏輯, 我大概知道了。

大概就是我偷懶使用了單點(diǎn)登錄的回調(diào)地址'bat.com/home'作為domain屬性值,以為能自動(dòng)解析出正常的domain。

實(shí)際上經(jīng)歷了【響應(yīng)流中的Set-Cookie header 忽略cookie domain屬性】---> 【hostonly判斷邏輯】, 事情已經(jīng)失控了,解決問(wèn)題的辦法也很明確,設(shè)置正確合法的domain屬性值,就不會(huì)出現(xiàn)后續(xù)的幺蛾子,上線驗(yàn)證有效。


許久未更,見(jiàn)諒!碼甲哥其實(shí)有很多內(nèi)容想寫(xiě),來(lái)日方長(zhǎng),與子同程。

本文記錄了某web站點(diǎn)上線生產(chǎn)遇到的跨站點(diǎn)無(wú)法攜帶cookie問(wèn)題,

  • 全面梳理了Cookie的疑難姿勢(shì)

  • 順勢(shì)引出了hostonly這個(gè)有點(diǎn)意思的cookie屬性

  • 希望本次的爬坑經(jīng)歷能給大家?guī)?lái)一點(diǎn)幫助

●實(shí)時(shí)通信技術(shù)大亂斗

●SignalR 開(kāi)發(fā)到生產(chǎn)部署閉坑指南

●SignalR在React/Go技術(shù)棧的實(shí)踐

●大前端快閃四:這次使用一個(gè)舒服的姿勢(shì)插入HttpClient攔截器

●大前端快閃三:多環(huán)境靈活配置react

●大前端快閃二:react開(kāi)發(fā)模式 一鍵啟動(dòng)多個(gè)服務(wù)

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

●難纏的布隆過(guò)濾器,這次終于通透了

原創(chuàng)不易,點(diǎn)“贊”“在看”

體現(xiàn)態(tài)度很有必要!

總結(jié)

以上是生活随笔為你收集整理的Hostonly cookie是什么鬼?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。