Safari 是否将二级域的子域视为第三方?
Does Safari consider subdomains of a 2nd level domain to be 3rd party?
我想在一台主机上设置一个前端,该主机通过另一台主机上的后端进行身份验证。假设域是:
- www.example.com
- api.example.com
如果用户在 www.example.com 时发出请求,Safari 是否允许 api.example.com 在浏览器中设置 cookie?
答案是否定的:Safari/WebKit 将共享二级域(即 example.com
)的站点视为第一方。
我们使用虚拟域(www.example.localdev
和 api.example.localdev
)在本地机器上托管的一些网站上测试了这一点,Safari 将它们视为第 3 方。这意味着我们无法使用我们的客户端站点 (www) 通过我们的后端 (api) 对用户进行身份验证。
然而,在移动到具有实际域(www.example.com
和 api.example.com
)的 Internet 上的暂存实例后,它们被视为第一方,每个人都高兴地回家了。
WebKit 的 tracking protection 描述支持子域策略:
First and third-party. If news.example is shown in the URL bar and it loads a subresource from adtech.example, then news.example is first-party and adtech.example is third-party. Note that different parties have to be different websites. sub.news.example is considered first-party when loaded under news.example because they are considered to be the same site.
但他们似乎也严格遵守他们对网站的描述 “一个包括其所有子域的可注册域”。
我想在一台主机上设置一个前端,该主机通过另一台主机上的后端进行身份验证。假设域是:
- www.example.com
- api.example.com
如果用户在 www.example.com 时发出请求,Safari 是否允许 api.example.com 在浏览器中设置 cookie?
答案是否定的:Safari/WebKit 将共享二级域(即 example.com
)的站点视为第一方。
我们使用虚拟域(www.example.localdev
和 api.example.localdev
)在本地机器上托管的一些网站上测试了这一点,Safari 将它们视为第 3 方。这意味着我们无法使用我们的客户端站点 (www) 通过我们的后端 (api) 对用户进行身份验证。
然而,在移动到具有实际域(www.example.com
和 api.example.com
)的 Internet 上的暂存实例后,它们被视为第一方,每个人都高兴地回家了。
WebKit 的 tracking protection 描述支持子域策略:
First and third-party. If news.example is shown in the URL bar and it loads a subresource from adtech.example, then news.example is first-party and adtech.example is third-party. Note that different parties have to be different websites. sub.news.example is considered first-party when loaded under news.example because they are considered to be the same site.
但他们似乎也严格遵守他们对网站的描述 “一个包括其所有子域的可注册域”。