不幸的是,您和合作伙伴网站都需要设置标题。
备择方案:
- 如果您不希望合作伙伴站点设置标题,一种选择是降低安全级别(在 IE 中)或在浏览器设置中授予对 3rd 方 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标头是指向浏览器提供称为紧凑策略的 HTTP 标头。如果没有这样的政策,IE(尤其是)和其他浏览器将阻止访问 3rd 方 cookie(用于指代 iFrame 的 cookie 的术语)以保护用户的隐私问题。
就 Google Analytics 而言,您的网站和合作伙伴网站仍然需要按照文档中的说明配置跨域跟踪。
2)您可以使用这个基本策略头(足以修复 iFrame 的 cookie):
P3P: CP="CAO PSA OUR"
或生成自己的。如果您不确定这些术语的含义,请参阅此。
要生成此类策略,您可以使用在线编辑器(例如p3pedit.com或 IBM 的工具),它们会提供一组问题并允许您提供答案。这使您可以轻松快速地生成此类策略。您可以生成策略 XML、紧凑策略等。
3)您可以尝试上面提到的两种选择。
将策略添加到整个站点的步骤
- 生成紧凑策略(使用前面提到的工具之一)或使用基本策略
- 在IIS中,右键单击所需的页面、目录或站点,然后单击“属性”。
- 在 HTTP 标头选项卡上,单击添加。
- 在自定义标题名称字段中,键入 P3P。
- 在 Custom Header Value 字段中,输入您的 Compact P3P 策略(或上面的基本策略),然后单击 OK。
- 在Apache中,像这样的 mod_header 行将执行以下操作:
Header append P3P "CP=\"CAO PSA OUR\""
希望这会有所帮助。