有没有办法让我的网站将第三方 cookie 声明为第一方 cookie?

Is there a way to make my site claim third-party cookies as first-party cookies?

我的 Angular6 站点使用 iframe 来显示另一个网站的资源。 iframe 的来源是我想要的资源的 url,如果用户单击不同的按钮,src 会动态更改。第一次使用 iframe 访问第三方站点时,会发生基本的身份验证过程

I ask for a resource
I am redirected to their authorization URL
They ask for authorization
I provide them my token
They give me a token as proof of authenticating and redirect back to resource

这个方法在Chrome中很好用,我可以很好地查看第三方页面的资源。但是在 IE 中它不起作用,直到我减少默认的互联网安全设置。我认为发生的情况是默认设置阻止了第三方 cookie,因此第三方网站永远无法向我发送证明我是他们资源的有效用户的证据,因此他们永远不会显示。

有没有办法让我的域以某种方式将来自其域的 cookie 声明为第一方 cookie?这样我就可以绕过 IE 默认设置关闭我。

颠簸

所以事实证明 Windows 7 和 IE 11 仍然需要称为 P3P 的东西来使 third-party cookie 不被阻止。

基本上 third-party cookie 过去的处理方式是 cookie 的发行者必须创建隐私政策并将其托管在某个地方,例如 'example.com/policy.html'。该政策是一份免责声明,告诉用户他们的数据是如何被使用的。发行者必须发送一个 header 并将 link 作为其值,以允许浏览器接受他们的 cookie。浏览器 'trusted' cookie 因为它有一个策略,用户可以查看他们的数据是如何被使用的。从其他一些堆栈溢出问题中,我发现这种 P3P 业务非常过时,并且没有多少实体关心它。我们甚至真的不需要担心 url 实际存在的政策。

我不得不要求外部站点将以下 header 添加到所有包含 cookie 的响应中:

P3P: CP="Test"

其中 "Test" 可以是任何其他字面意思,而且有效!

资源:

Cookie blocked/not saved in IFRAME in Internet Explorer

https://security.stackexchange.com/questions/153084/is-it-ok-to-turn-off-p3p-in-ie11-on-windows-7