iFrames + 谷歌分析 + Cookies + P3P
Posted
技术标签:
【中文标题】iFrames + 谷歌分析 + Cookies + P3P【英文标题】:iFrames + Google Analytics + Cookies + P3P 【发布时间】:2011-04-02 14:59:58 【问题描述】:我正在开发一个为合作伙伴网站带来流量的网站。当在我们的网站上单击合作伙伴网站的徽标时,我们会在包含我们的基本标题和 iframe 内的合作伙伴网站的页面中打开合作伙伴网站。早些时候,我们只是在新窗口中打开合作伙伴网站。到目前为止一切都很酷。
大多数合作伙伴网站使用谷歌分析来跟踪我们发送给他们的流量,在我们开始在 iframe 中打开网站后不久,我们的合作伙伴报告说谷歌分析不再跟踪数据(或只跟踪一小部分数据)。
我在 googleverse 上完成了相当多的家庭作业/研究,并发现了跨域和 iframe 的谷歌分析或 cookie 的已知问题。
我正在尝试解决此问题,唯一被引用的解决方案是使用 P3P 标头。
首先,P3P 标头在哪里?在我的网站页面或合作伙伴网站页面中。由于我们有许多合作伙伴网站(大大小小的),如果解决方案是在这些网站中的每一个中放置标签,那将是不切实际的。我可以轻松地将它们添加到包含 iframe 的页面中。
在各种 p3p 标头生成器中,您推荐一种可靠的吗?
有没有办法解决这个问题?我真的需要在 iframe 中打开网站,显然合作伙伴网站确实需要跟踪流量。
感谢您的帮助。
【问题讨论】:
@eduardocereto:添加了更多代码示例。 【参考方案1】:很遗憾,您和合作伙伴网站都需要设置标题。
替代方案:
如果您不希望合作伙伴网站设置标题,一种选择是降低安全级别(在 IE 中)或在浏览器设置中授予对第 3 方 cookie(在 FF 中)的访问权限。每个客户都必须这样做,所以这可能不是一个有吸引力的解决方案。 使用localStorage
(html5 thingy - 支持localStorage
的浏览器允许访问站点和存储在localStorage 中的iFrame 内容)。这在短期内可能不可行,因为它需要您和您的合作伙伴网站都实现向/从localStorage
保存/读取信息,并且并非每个浏览器都支持它(尤其是较旧的 IE 浏览器)。
添加基本策略标题(理想情况下,您应该直接生成自己的策略 - 检查下面的第 2 项)
在php中加入这一行:
<?php header('P3P: CP="CAO PSA OUR"'); ?>
在 ASP.Net 中:
HttpContext.Current.Response.AddHeader("p3p", "CP=\"CAO PSA OUR\"");
在 HTML 页面中:
<meta http-equiv="P3P" content='CP="CAO PSA OUR"'>
关于您的其他问题:
1) P3P 标头是指将称为compact policy 的内容传递给浏览器的HTTP 标头。如果没有这样的政策,IE(尤其是)和其他浏览器将阻止访问 3rd 方 cookie(用于指代 iFrame 的 cookie 的术语)以保护用户的隐私问题。
就 Google Analytics(分析)而言,您的网站和合作伙伴网站仍需要按照文档中的说明配置 cross domain tracking。
2)您可以使用这个基本策略标头(足以修复 iFrame 的 cookie):
P3P:CP="CAO PSA OUR"
或生成您自己的。如果您不确定这些术语的含义,请参阅this。
要生成此类策略,您可以使用在线编辑器,例如 p3pedit.com 或 IBM 的 tool,它们会提供一组问题并允许您提供答案。这使您可以轻松快速地生成此类策略。您可以生成policy XML、compact policy 等。
3) 您可以尝试上述两种方法。
将政策添加到整个网站的步骤
-
生成紧凑策略(使用前面提到的工具之一)或使用基本策略
在 IIS 中,右键单击所需的页面、目录或站点,然后单击“属性”。
在 HTTP 标头选项卡上,单击添加。
在“自定义标题名称”字段中,键入 P3P。
在“自定义标头值”字段中,输入您的 Compact P3P 策略(或上面的基本策略),然后单击“确定”。
在 Apache 中,这样的 mod_header 行就可以了:
Header append P3P "CP=\"CAO PSA OUR\""
希望对您有所帮助。
【讨论】:
好答案。我注意到 CP="CAO PSA OUR" 通常足以绕过 cookie 限制。 除了遵守没人关心的规范之外,还有什么理由创建完整的 P3P 文件? 创建完整 P3P 文件的原因是您关心它! :) IE 10 是否仍然支持 P3P 元标记? IE 8 是公司的默认浏览器,我正在尝试让 Google Analytics 在 iFrame 中工作,当然 IE 是有问题的。 由于P3P很大程度上是MS的想法,而且IE是唯一支持它的主要浏览器,我不会这么认为。此外,根据他们的privacy statement,他们这样做了。以上是关于iFrames + 谷歌分析 + Cookies + P3P的主要内容,如果未能解决你的问题,请参考以下文章