iFrames + Google Analytics + Cookies + P3P

use*_*384 11 cookies iframe google-analytics p3p

我正在开发一个为合作伙伴网站带来流量的网站.当我们在网站上点击合作伙伴网站的徽标时,我们会在包含我们的基本标题和iframe中的合作伙伴网站的页面中打开合作伙伴网站.之前我们只是在新窗口中打开合作伙伴网站.到目前为止一切都很酷

大多数合作伙伴网站使用谷歌分析来跟踪我们发送的流量,在我们开始在iframe中开放网站后不久,我们的合作伙伴报告说谷歌分析不再跟踪数据(或只追踪一小部分数据).

我已经在googleverse上做了相当多的家庭作业/研究,并发现谷歌分析或cookie在域和iframe中的常见问题.

我正在尝试解决此问题,并且唯一引用的解决方案是使用P3P标头.

  1. 首先,P3P标头在哪里?在我的网站页面或合作伙伴网站页面中.由于我们有许多合作伙伴站点(大小),如果解决方案是在每个站点中放置标签,那么它将不实用.我可以轻松地将它们添加到包含iframe的页面中.

  2. 在各种p3p头文件生成器中,你推荐一个可靠的吗?

  3. 有没有解决这个问题的方法?我真的需要在iframe中打开网站,显然合作伙伴网站确实需要跟踪流量.

感谢您的帮助.

Mrc*_*ief 8

不幸的是,您和合作伙伴网站都需要设置标头.

备择方案:

  • 如果您不希望合作伙伴站点设置标头,则一个选项是降低安全级别(在IE中)或在浏览器设置中授予对第三方cookie(在FF中)的访问权限.每个客户都必须这样做,所以这可能不是一个有吸引力的解决方案.
  • 使用localStorage(HTML5 thingy - 支持localStorage允许访问网站和存储在localStorage中的iFrame内容的浏览器).这可能在短期内不可行,因为它需要您和您的合作伙伴站点实现保存/读取信息,localStorage而不是每个浏览器都支持它(特别是旧的IE浏览器).

要添加基本策略标题(理想情况下,您应该生成自己的直接策略 - 请查看下面的第2项)

php中添加以下行:

<?php header('P3P: CP="CAO PSA OUR"'); ?>
Run Code Online (Sandbox Code Playgroud)

ASP.Net中:

HttpContext.Current.Response.AddHeader("p3p", "CP=\"CAO PSA OUR\"");
Run Code Online (Sandbox Code Playgroud)

HTML页面中:

<meta http-equiv="P3P" content='CP="CAO PSA OUR"'>
Run Code Online (Sandbox Code Playgroud)

关于您的其他问题:

1) P3P标头指的是向浏览器提供称为紧凑策略的HTTP标头.如果没有这样的政策,IE(最值得注意的)和其他浏览器将阻止访问第三方cookie(用于指代iFrame的cookie的术语)以保护用户的隐私问题.

至于谷歌分析去,您的网站和合作伙伴网站还需要配置跨网域跟踪他们的文档中列出.

2)您可以使用此基本策略标头(足以修复iFrame的cookie):

P3P:CP ="CAO PSA OUR"

或生成自己的.如果您不确定这些术语的含义,请参阅此处.

要生成此类策略,您可以使用在线编辑器,例如p3pedit.com或IBM的工具,它们会提供一组问题并允许您提供答案.这使您可以轻松快速生成此类策略.您可以生成策略XML,紧凑策略等.

3)您可以尝试上面提到的两种替代方案.

将策略添加到整个站点的步骤

  1. 生成紧凑策略(使用前面提到的工具之一)或使用基本策略
  2. IIS中,右键单击所需的页面,目录或站点,然后单击"属性".
  3. 在"HTTP标头"选项卡上,单击"添加".
  4. 在"自定义标题名称"字段中,键入P3P.
  5. 在"自定义标头值"字段中,输入您的Compact P3P策略(或上面的基本策略),然后单击"确定".
  6. Apache中,像这样的mod_header行将执行:
Header append P3P "CP=\"CAO PSA OUR\""
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.

  • 是否有任何理由创建完整的P3P文件,而不是遵守一个没有人关心的规范? (2认同)