不幸的是,您和合作伙伴网站都需要设置标题。
替代方案:
- 如果你不希望合作伙伴网站上设置头,一种选择是降低安全水平(IE)或授予在浏览器中访问第三方Cookie(在FF)设置。每个客户都必须这样做,所以这可能不是一个有吸引力的解决方案。
- 使用
localStorage
(HTML5 thingy - 支持localStorage
的浏览器允许访问存储在localStorage中的站点和iFrame内容)。这可能在短期内不可行,因为它要求您和您的合作伙伴网站实现localStorage
的储存/读取信息,而不是每个浏览器都支持它(尤其是旧版IE浏览器)。
增加一个基本策略标题(理想情况下,你应该生成自己的政策,是直线前进 - 检查以下项目#2)
在PHP加入这一行:
<?php header('P3P: CP="CAO PSA OUR"'); ?>
在ASP。净:
HttpContext.Current.Response.AddHeader("p3p", "CP=\"CAO PSA OUR\"");
在HTML网页:
<meta http-equiv="P3P" content='CP="CAO PSA OUR"'>
关于你提到的其他问题:
1)P3P头指的是HTTP头,提供一些所谓的一个compact policy给浏览器。如果没有这样的政策,IE(最值得注意的)和其他浏览器将阻止访问第三方cookie(用于指代iFrame的cookie)来保护用户的隐私问题。
至于谷歌分析去,都您的网站和合作伙伴网站仍需要配置cross domain tracking作为他们的文档中列出。
2)您可以使用此基本政策头(这是不足以解决iframe的饼干):
P3P:CP = “CAO PSA OUR”
或产生你自己。如果您不确定这些术语的含义,请参见this。
要生成此类政策,您可以使用在线编辑器,如p3pedit.com或IBM的tool,其中提供了一组问题并允许您提供答案。这使您可以轻松快速生成此类政策。您可以生成policy XML,compact policy等。
3)您可以尝试上面提到的两种方法。
步骤的策略添加到您的整个网站
- 生成一层致密的策略(使用前面提到的工具之一),或使用基本政策
- 在IIS,右键单击所需的页面,目录或站点,然后单击“属性”。
- 在HTTP标题选项卡上,单击添加。
- 在自定义标题名称字段中,输入P3P。
- 在自定义标题值字段中,输入您的Compact P3P策略(或上面的基本策略),然后单击确定。
- 在阿帕奇,这样的mod_header线将做到:
Header append P3P "CP=\"CAO PSA OUR\""
希望的部份帮助。
@eduardocereto:增加了一些代码示例。 – Mrchief 2011-08-16 15:35:55