【问题标题】:Does the technique for setting third-party cookies in iframes in Safari still work?在 Safari 的 iframe 中设置第三方 cookie 的技术是否仍然有效?
【发布时间】:2012-04-21 02:16:30
【问题描述】:

我正在尝试找到一种在 Safari 的 iframe 中设置 cookie 的方法。 Safari 的政策是不允许 iframe 设置 cookie,除非用户点击 iframe 中的某些内容。

我已阅读有关 Stackoverflow 和其他文章的问题/答案。以下是一些链接:

他们都提到了实现此目的的技术变体。基本思想是创建一个表单元素并使其通过 JavaScript 调用或通过用户单击按钮来提交 POST 请求。发送 POST 请求后,Safari 会认为用户已与网站进行了交互,然后允许设置 cookie。

我做了一些尝试来实现这种技术。我失败了。

我在《华尔街日报》上发现了一篇文章 (http://online.wsj.com/article/SB10001424052970204880404577225380456599176.html),其中介绍了 Google 如何使用这种技术将 +1 按钮放入 DoubleClick 广告中。该文章还引用了 Anant Garg 的博客文章(上面的链接)关于如何解决该限制。

这是文章的引述:

为了绕过 Safari 的默认拦截,Google 利用了浏览器隐私设置中的漏洞。虽然 Safari 确实阻止了大多数跟踪,但它对人们以某种​​方式与之交互的网站(例如,通过填写表格)进行了例外处理。因此,谷歌在其一些广告中添加了编码,使 Safari 认为有人正在向谷歌提交不可见的表单。然后 Safari 会让 Google 在手机或电脑上安装一个 cookie。

另一个引用:

一位苹果官员表示:“我们正在努力制止”绕过 Safari 隐私设置的行为。

我正在使用 2012 年 3 月 26 日发布的 Safari 5.1.5。《华尔街日报》的文章于 2012 年 2 月 17 日发布。Apple 是否可能已更改 Safari 以使此解决方法不再有效?谁能确认这种技术适用于 Safari 5.1.5?

【问题讨论】:

标签: iframe cookies safari


【解决方案1】:

看到这个帖子:Safari 3rd party cookie iframe trick no longer working?

Safari 已在 5.1.4 中强制执行其 cookie 政策。

【讨论】:

  • 这是否意味着无论如何都不可能在 Safari 的 iframe 中的跨域页面上设置 cookie?
  • 是的。用户必须交互 cookie 只能在域匹配时设置。我目前的解决方法:reizbombardement.de/archives/…
  • 如果您控制两个域,您可以将用户引导到域 b,设置 cookie,然后将用户引导回域 a。 Safari 将在已设置的 iframe 中传递一个 cookie,您只是无法创建新的 cookie。
  • @Dave Arason Smity:我已经按照你说的做了。在设置域 b 的 cookie 并重定向到域 A 之后。我正在使用 iframe 在域 A 内加载域 B。一段时间后,用户在浏览器设置中阻止了第三方 cookie。现在域 B 不再向已设置的服务器发送 cookie。这个问题有什么解决方法吗?
  • @DaveAaronSmith Safari 13.1.1 不再是这种情况,它们不再在 iframe 中被拾取。
猜你喜欢
  • 2013-09-22
  • 2015-03-30
  • 2016-04-18
  • 2021-05-21
  • 2016-08-28
  • 2019-03-31
  • 1970-01-01
  • 2016-03-09
  • 2013-07-14
相关资源
最近更新 更多