1 回答
TA贡献1799条经验 获得超6个赞
好吧,我想我已经做了足够的研究来弄清楚我面临的问题,所以我会回答我自己的问题。
因此,真正帮助我真正理解 SameSite 是关于什么的一页是这一页,所以对于任何对 SameSite 有疑问的人,请阅读一下,以便您了解其背后的原因及其工作原理。
阅读了一些文章并看到了对另一篇文章的回答,这帮助我把这些点联系起来。我将我正在处理的网站部署到实际的网络服务器上,发现以下是响应标头:
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服务器发出两个标头来存储ss-id和的值ss-pid。这些 cookie显然代表 permanant session ID 和 session ID,并且由 ASP.NET 发布用于跟踪会话。浏览器不接受和设置这两个 cookie,因为它们缺少SameSite=none设置和Secure设置 - 这些是我在上面的帖子中提到的两个 cookie。
因此,要解决此问题,首先我需要切换到对 API(可能还有网站本身)使用 https - 我已经完成了,并以某种方式弄清楚如何让第 3 方 API 在其会话中设置 SameSite 属性相关的 cookie。
因此,对于希望完全控制您的 API 等的其他人,只要您在响应中创建/发送 cookie 时,您就应该能够设置这些属性,因此通过设置 和 将 cookie 从站点发送到其他SameSite=None域Secure。
添加回答
举报