1 回答

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個(gè)贊
好吧,我想我已經(jīng)做了足夠的研究來弄清楚我面臨的問題,所以我會(huì)回答我自己的問題。
因此,真正幫助我真正理解 SameSite 是關(guān)于什么的一頁是這一頁,所以對(duì)于任何對(duì) SameSite 有疑問的人,請(qǐng)閱讀一下,以便您了解其背后的原因及其工作原理。
閱讀了一些文章并看到了對(duì)另一篇文章的回答,這幫助我把這些點(diǎn)聯(lián)系起來。我將我正在處理的網(wǎng)站部署到實(shí)際的網(wǎng)絡(luò)服務(wù)器上,發(fā)現(xiàn)以下是響應(yīng)標(biāo)頭:
HTTP/1.1 200 OK
Cache-Control: private,no-cache
Content-Type: application/json; charset=utf-8
Vary: Accept
Server: Microsoft-IIS/10.0
X-Content-Type-Options: nosniff
X-Powered-By: ServiceStack/4.512 NET45 Win32NT/.NET
X-AspNet-Version: 4.0.30319
Set-Cookie: ss-pid=0QyVIKf4edkAKd2h4be5; expires=Fri, 27-Jul-2040 09:58:39 GMT; path=/; HttpOnly
Set-Cookie: ss-id=fmM1WQsDxXGfR8q9GL6e; path=/; HttpOnly
Access-Control-Allow-Origin: http://server
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: POST,GET,OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization
Persistent-Auth: true
WWW-Authenticate: Negotiate oYG2MIGzoAMKAQChCwYJKoZIgvcSAQICooGeBIGbYIGYBgkqhkiG9xIBAgICAG+BiDCBhaADAgEFoQMCAQ+ieTB3oAMCARKicARusah2q1K2ACHwoq1n6DCNq5rx/HFdbK5sU9EohnxrRSpzmelskTTa9xmW8wgeUdwRNQCqMsD/dZ/pUjhdl2CVWjmFZZAfnKl6JEker+s79E9uFXThZZKnqfpqEgSvvqSYpp1KMkaYBYd1uf5mRyE=
Date: Mon, 27 Jul 2020 09:58:40 GMT
Content-Length: 1597
Set-Cookie服務(wù)器發(fā)出兩個(gè)標(biāo)頭來存儲(chǔ)ss-id和的值ss-pid。這些 cookie顯然代表 permanant session ID 和 session ID,并且由 ASP.NET 發(fā)布用于跟蹤會(huì)話。瀏覽器不接受和設(shè)置這兩個(gè) cookie,因?yàn)樗鼈內(nèi)鄙賁ameSite=none設(shè)置和Secure設(shè)置 - 這些是我在上面的帖子中提到的兩個(gè) cookie。
因此,要解決此問題,首先我需要切換到對(duì) API(可能還有網(wǎng)站本身)使用 https - 我已經(jīng)完成了,并以某種方式弄清楚如何讓第 3 方 API 在其會(huì)話中設(shè)置 SameSite 屬性相關(guān)的 cookie。
因此,對(duì)于希望完全控制您的 API 等的其他人,只要您在響應(yīng)中創(chuàng)建/發(fā)送 cookie 時(shí),您就應(yīng)該能夠設(shè)置這些屬性,因此通過設(shè)置 和 將 cookie 從站點(diǎn)發(fā)送到其他SameSite=None域Secure。
添加回答
舉報(bào)