为什么浏览器允许在iframe的父(跨)域上设置cookie?

为什么浏览器允许在iframe的父(跨)域上设置cookie?,iframe,cookies,browser,privacy,user-tracking,Iframe,Cookies,Browser,Privacy,User Tracking,为什么一个站点(a.com)有一个指向另一个域(b.com)的iframe,它的cookie可以被另一个域文档查看和更改 刚刚在一则广告中看到了这一点,然后去做了一个概念验证,它成功了。。。以下是我所做的:首先,将a.com和b.com指向我的测试机器IP 然后我有:(这就是我看到广告的地方) (这将是插入网站内联的广告脚本,指向广告客户公司域) document.write(“”) 在: document.cookie=“test=1;domain=.a.com;path=/;expires

为什么一个站点(a.com)有一个指向另一个域(b.com)的iframe,它的cookie可以被另一个域文档查看和更改

刚刚在一则广告中看到了这一点,然后去做了一个概念验证,它成功了。。。以下是我所做的:首先,将a.com和b.com指向我的测试机器IP

然后我有:(这就是我看到广告的地方)

(这将是插入网站内联的广告脚本,指向广告客户公司域)

document.write(“”)

在:

document.cookie=“test=1;domain=.a.com;path=/;expires=Tue,2012年10月30日02:47:11 UTC”

运行完之后,在Firefox14股票中,我在a.com上有了一个cookie


这是怎么回事?这种行为定义在哪里?

在我看来,这是由于和的结合,大多数浏览器默认允许第三方cookie


您将发现有用的信息:

虽然第一方cookie仅发送给设置它们的服务器,但网页可能包含存储在其他域中的服务器上的图像或其他组件(如广告横幅)。通过这些第三方组件发送的Cookie称为第三方Cookie,主要用于网络上的广告和跟踪

[……] 大多数浏览器默认允许第三方cookie

为避免此默认设置,您可能会关注
SameSite
cookies,其中:

让服务器要求cookie不应与跨站点请求一起发送

但是

SameSite Cookie仍处于试验阶段,并非所有浏览器都支持


另请看一看,您可以在其中阅读:

CORS机制支持浏览器和web服务器之间的安全跨域请求和数据传输。[……]

此跨源共享标准用于为以下各项启用跨站点HTTP请求:

[……]

  • 脚本(用于非静音异常)

您还可以在中注意到,
是可嵌入跨源代码的资源



如果您担心并且不愿意在上接受任何第三方cookie,您仍然可以安装(由),但此解决方案需要在用户浏览器上进行访问。

这确实是一种奇怪的行为。5年多之后,没有答案。你发现了吗?@machineyearning,你真的验证过了吗。我问这个问题主要是想弄清历史原因,以及广告公司对网景/微软的“游说”是谁影响了它:)祝你们好运,为什么。这类事情在这里永远得不到任何答案。你只能得到机会主义的赏金猎人。如果浏览器阻止了第三方设置的cookies怎么办?显然,屏蔽没有任何价值,但允许屏蔽有很大的价值,这反过来会让用户接触到可以作为收入来源的广告。浏览器只是用户获取、显示和浏览信息资源的媒介,不一定会阻止cookies。P3P是他们引入的另一个标准,但由于困难和缺乏价值,许多供应商没有考虑。我认为CORS与此无关。除了比第三方cookie问题更新之外,第三方cookie不需要允许任何一个请求上的CORS头。默认情况下,它就在那里。不确定。。。请注意,如果第三方服务器想要设置cookie,则需要在服务器响应中添加“Access Control Allow Origin”头。假设“accesscontrolalloworigin”是一个CORS(跨源资源共享)头,最后我认为CORS与此有关。