Cookie被阻止/未保存在Internet Explorer的IFRAME中


392

我有两个网站,假设它们是example.comanotherexample.net。上anotherexample.net/page.html,我有一个IFRAME SRC="http://example.com/someform.asp"。该IFRAME显示供用户填写并提交给的表单http://example.com/process.asp。当我someform.asp在其自己的浏览器窗口中打开表单(“ ”)时,一切正常。但是,当我someform.asp在IE 6或IE 7中作为IFRAME 加载时,example.com的cookie不会保存。在Firefox中,不会出现此问题。

为了进行测试,我在http://newmoon.wz.cz/test/page.php上创建了类似的设置。

example.com使用基于Cookie的会话(对此我无能为力),因此如果没有Cookie,process.asp就无法执行。如何强制IE保存这些Cookie?

嗅探HTTP流量的结果:在GET /someform.asp响应上,存在一个有效的每会话Set-Cookie标头(例如Set-Cookie: ASPKSJIUIUGF=JKHJUHVGFYTTYFY),但是在POST /process.asp请求中,根本没有Cookie标头。

Edit3:某些AJAX +服务器端脚本显然可以避开该问题,但这看起来非常像个bug,此外,它还开辟了一套全新的安全漏洞。我不希望我的应用程序仅因为简单而就使用bug +安全漏洞的组合。

编辑:P3P策略是根本原因,下面有完整说明。


确实是一个很好的解决方案..我尝试创建隐私策略..添加到我的上下文根中...并且在我的jsp页面中,我设置了标题..仍然无法摆脱那个红眼..您能帮上忙吗我解决问题..
user902490

感谢演示站点@Piskvor,我在此Security.SE帖子中
goodguys_activate 2011年

@ makerofthings7:是的。我将其迁移到非临时(sic!)网站,并建议对Security.se进行编辑,该页面是一个有点骇人听闻的概念证明。
Piskvor在2011年

2
不要费心尝试使P3P在Windows 10 / Internet Explorer 11(msdn.microsoft.com/en-us/library/…)中运行。P3P根本不起作用,因此无论您做什么,都不会存储cookie。这里证明以及enhanceie.com/test/cookie
PUCO

Answers:


429

我可以使用它,但是解决方案有点复杂,请耐心等待。

发生了什么

实际上,Internet Explorer对IFRAME页面(IE称为“第三方”内容)的信任度较低。如果IFRAME中的页面没有隐私政策,则它的cookie被阻止(由状态栏中的眼睛图标指示,当您单击它时,它会显示阻止的URL列表)。

邪恶的眼睛
(来源:piskvor.org

在这种情况下,当Cookie被阻止时,不会发送会话标识符,并且目标脚本会引发“找不到会话”错误。

(我尝试将会话标识符设置到表单中并从POST变量加载它。这本来可以用,但是出于政治原因,我不能这样做。)

可以使IFRAME中的页面更受信任:如果内部页面发送具有IE可接受的隐私策略的P3P标头,则将接受cookie

如何解决

建立P3P政策

W3C教程是一个很好的起点。我已经仔细阅读了它,下载了IBM Privacy Policy Editor,然后在其中创建了隐私策略的表示形式,并给它起了引用的名称(此处是policy1)。

注意:在这一点上,您实际上需要确定您的站点是否具有隐私策略,如果没有,请创建它-是否收集用户数据,什么样的数据,如何处理,有权访问它,等等。您需要找到这些信息并加以考虑只是将几个标签拍在一起不会削减它。此步骤不能仅在软件中完成,而且可能具有很高的政治意义(例如“我们应该出售点击统计信息吗?”)。

(例如“该站点由ACME Ltd.运营,它使用匿名的每会话标识符进行操作,仅在明确允许的情况下收集用户数据,并且仅出于以下目的,仅在必要时存储数据,只有我们公司可以访问它,等等,等等。)。

(使用此工具进行编辑时,可以查看策略中的错误/遗漏。“ HTML策略”标签也非常有用:它的底部有一个“策略评估”-快速检查是否会阻止该策略通过IE的默认设置)

编辑器将导出到.p3p文件,该文件是上述策略的XML表示形式。同样,它可以导出此策略的“精简版本”。

链接到政策

然后需要一个策略参考文件(http://example.com/w3c/p3p.xml)(网站使用的隐私策略索引):

<META>
  <POLICY-REFERENCES>
    <POLICY-REF about="/w3c/example-com.p3p#policy1">
      <INCLUDE>/</INCLUDE>
      <COOKIE-INCLUDE/>
    </POLICY-REF>
  </POLICY-REFERENCES>
</META>

<INCLUDE>节目将使用此策略(在我的情况,整个网站)所有的URI。我从编辑器导出的策略文件已上传到http://example.com/w3c/example-com.p3p

发送带有响应的紧凑头

我已将example.com上的网络服务器设置为发送带有响应的紧凑标头,如下所示:

HTTP/1.1 200 OK 
P3P: policyref="/w3c/p3p.xml", CP="IDC DSP COR IVAi IVDi OUR TST"
// ... other headers and content

policyref是策略引用文件(进而引用隐私策略)的相对URI,CP是紧凑型策略表示形式。请注意,示例中的P3P标头组合可能不适用于您的特定网站。您的P3P标头必须真实地代表您自己的隐私政策!

利润!

在此配置中,不会出现邪恶之眼,即使在IFRAME中也会保存cookie,并且该应用程序可以工作。

编辑:不可以做什么,除非您喜欢为诉讼辩护

一些人建议“将一些标签拍入您的P3P标头,直到邪恶之眼放弃”。

标签不仅是一堆东西,还具有现实意义,它们的使用赋予您现实世界的责任

例如,假装从不收集用户数据可能会使浏览器满意,但如果您实际上收集了用户数据,则P3P与现实冲突。简单明了,您故意向用户说谎,这在某些国家/地区可能是犯罪行为。如“入狱,不要收200美元”。

一些示例(有关完整的标签集,请参见p3pwriter):

  • NOI:“网站未收集已标识的数据。” (一旦进行了任何自定义,登录或任何数据收集(***** Analytics(分析),有人吗?),您必须在您的P3P中进行确认)
  • STP:保留信息以达到指定目的。这要求信息尽早被丢弃。站点必须具有建立销毁时间表的保留策略。保留策略必须包含在网站的可读性隐私策略中或与之链接。”(因此,如果您发送STP但没有保留策略,则可能是欺诈行为。这有多酷?根本没有。)

我不是律师,但我不愿意去法院看看P3P标头是否确实具有法律约束力,或者您是否可以向用户承诺任何东西而实际上却不愿兑现您的承诺。


我已经完成了95%,但是我的标头只说了:P3P:CP =“ ....”,并且不包含policyref链接,这使得它可以在IE7中工作,但在IE6上却不行。谢谢!
AndreasKnudsen,2009年

4
指向IBM编辑器的链接不再起作用。通过自由之路机,我能够找到这个工作环节:www6.software.ibm.com/sdfdl/1v2/regs2/awadmin/p3peditor/Xa.2/...
ripper234

34
有关此主题的一些新闻:-IBM编辑器可在以下位置找到:softpedia.com/get/Security/Security-Related / ... -P3P标准似乎过时。像google和facebook这样的大公司现在使用无效的P3P标头绕过IE安全。看到这些帖子: cylab.cmu.edu/research/techreports/2010/tr_cylab10014.html zdnet.com/blog/facebook/... techpolicy.com/...
达维德Icardi

7
另一个可以帮助遇到类似问题的人的信息:根据我的测试,如果域位于不同的安全区域(例如,第一方是Internet,第三方是Intranet),那么即使P3P正确,也无法接受第三方Cookie配置。Cookie始终被阻止。
Davide Icardi 2012年

1
重要的是要注意,“第三方”一词并不像人们想象的那么清晰。如果iframe具有相对于封闭网站的第三方内容并且具有有效的隐私权政策,并且重定向到iframe中来自主站点的视图,那么除非该视图具有有效的隐私权政策,否则IE不会相信它的cookie。即使该视图与包含iframe的视图来自同一站点。
票价

168

我一天的大部分时间都在研究P3P,我觉得有必要分享我发现的内容。

我注意到,P3P概念已经过时,并且似乎仅由Internet Explorer(IE)真正使用/实施。

最简单的解释是:如果您使用cookie,IE希望您定义一个P3P标头。

这是个好主意,幸运的是,大多数时候不提供此标头不会引起任何问题(阅读浏览器警告)。除非您的网站/ Web应用程序使用(i)Frame加载到其他网站。这就是IE在***中成为巨大痛苦的地方。除非设置了P3P标头,否则它将不允许您设置cookie。

知道这一点后,我想找到以下两个问题的答案:

  1. 谁在乎?换句话说,如果我在标题中加上“土豆”一词,可以被起诉吗?
  2. 其他公司做什么?

我的发现是:

  1. 没人在乎。我找不到单个文件表明该技术具有法律上的分量。在研究期间,我没有发现世界上有哪个国家/地区通过了一项法律,该法律禁止您在P3P标头中添加“马铃薯”一词
  2. Google和Facebook都在其P3P标头字段中放置了一个链接,该链接指向描述为何没有P3P标头的页面。

这个概念诞生于2002年,令我感到困惑的是,这个过时且法律上未实现的概念仍然被强加给IE中的开发人员。如果此标头没有任何法律影响,则应忽略此标头(或在控制台中生成警告或通知)。不执行!现在,我被迫在我的代码中放一行(并向客户端发送标头),这绝对不起作用。

简而言之-为使IE保持愉快-在您的PHP代码中添加以下行(其他语言应类似)

header('P3P: CP="Potato"');

问题解决了,IE对此土豆感到满意。


6
实际上,自2008年发布以来,该问题已经发生了重大变化。网络日新月异,关于P3P的共识已经落在“没人在乎”了。很高兴知道在这种情况下IE对无效输入做了什么。
Piskvor

19
哦,天哪,这是那些隐藏的Internet Explorer宝藏之一!HttpContext.Current.Response.AddHeader(“ p3p”,“ CP = \” Internet Explorer是由白痴编写的“ \”“);那个对我有用!
米歇尔·科尼尔

6
@Mvision不要怪开发商,这是与律师和管理相关的问题吗?我猜想大多数开发人员确实意识到该功能将导致类似马铃薯的解决方案:-)
KajMagnus 2014年

5
对于ASP.Net,您可以将其添加到您的Web配置中:'<system.webServer> <handlers> <httpProtocol> <customHeaders> <add name =“ p3p” value =“ CP =” Internet Explorer要求这样做以设置第三方Cookie” /> </ customHeaders> </ httpProtocol> </ handlers> </system.webServer>”
Rick Kierner 2014年

1
哦,这个需要更高!我花了几个小时试图使cookie在IE 11 iframe中工作。尝试各种P3P组合,并根据Cookie类型/有效期获得各种结果。最后放入Potato我的P3P中解决了。哈哈!
dtbaker

55

通过将以下小标头添加到IFrame(PHP解决方案)中的站点上,我就可以消除邪恶的眼光:

header('P3P: CP="NOI ADM DEV COM NAV OUR STP"');

请记住,按ctrl + F5重新加载您的网站,否则资源管理器尽管工作正常,但仍然可能显示出恶意。这可能是我在使用它时遇到很多问题的主要原因。

根本不需要任何策略文件。

编辑:我找到了一个不错的博客条目,该条目解释了iframe中cookie的问题。它还具有C#代码的快速修复: 框架,ASPX页面和拒绝的Cookie。


10
IANAL,但P3P政策似乎具有法律约束力。您是否知道您对此处用户的承诺,还是只是混合使用标签直到EvilEye消失了?我认为浏览器缓存将不是您遇到的最大问题:“ NOI:网站不会收集已识别的数据 。STP:保留信息以满足指定的目的。这需要尽早丢弃信息。网站必须具有建立销毁时间表的保留策略。该保留策略必须包含在网站的可读性隐私政策中或与之链接。”
Piskvor于

28
我必须承认,我并不在乎它的含义,我只需要在Explorer中工作即可。这些站点是我们自己的非公共站点,其中一个使用cookie来“记住”显示该站点的样式。因此,是的,我只是混合了标签,直到邪恶之眼消失了。
Helo 2010年

在此找到了一个不错的博客文章来解释问题:aspnetresources.com/blog/frames_webforms_and_rejected_cookies
Helo

6
P3P越来越不相关。cylab.cmu.edu/files/pdfs/tech_reports/CMUCyLab10014.pdf如果具有法律约束力,那么现在证明存在诉讼优先权。人们对它的评价很高,以至于除了我的一位竞争对手之外,其他所有竞争对手都一开始就不愿发表。他们必须弄清楚,如果他们的客户不能将IE设置保留为“中”,那么他们就不值得付出努力。如果cookie不起作用,那么一个站点上的销售损失就必须很高,如果没有cookie,购物车就会死掉。
Fiasco Labs 2012年

3
此答案建议使用类似的虚拟标头CP="This_is_not_a_privacy_policy"。我认为这样做似乎没有法律约束力(因为例如NOI和STP并没有提到任何类似的东西),显然使IE感到高兴:-)
KajMagnus 2014年

21

这被掩埋在其他答案的评论中,但是我差点错过了它,因此似乎它应该得到自己的答案。

要查看:为了使IE接受第三方Cookie,您需要使用名为p3p的http标头为文件提供以下格式:

CP="my compact p3p policy"

但是,此时,p3p几乎已成为标准,并且您可以轻松地使IE正常工作,而无需花费时间和法律资源来创建真正的p3p策略。这是因为,如果您的紧凑型p3p策略标头无效,则IE实际上会将其视为一个好的策略并接受第三方Cookie。所以你可以使用像这样的p3p标头

CP="This site does not have a p3p policy."

您可以选择包含指向页面的链接,该页面解释为什么没有Google和Facebook一样的p3p策略(它们指向以下位置:https : //support.google.com/accounts/answer/151657和此处:https ://www.facebook.com/help/327993273962160/)。

最后,请务必注意,从第三方网站提供的所有文件都必须具有p3p标头,而不仅仅是设置cookie的标头,因此您可能无法仅在PHP,asp.net等中执行此操作码。您最好在Web服务器级别(即IIS或Apache)中进行设置。


20

我也有这个问题,以为我会发布我在MVC2项目中使用的代码。在页面生命周期中添加标头时,请务必小心,否则会出现HttpException“ 发送HTTP标头后服务器无法附加标头。” 我在OnActionExecuting方法上使用了自定义ActionFilterAttribute(在执行操作之前调用)。

/// <summary>
/// Privacy Preferences Project (P3P) serve a compact policy (a "p3p" HTTP header) for all requests
/// P3P provides a standard way for Web sites to communicate about their practices around the collection, 
/// use, and distribution of personal information. It's a machine-readable privacy policy that can be 
/// automatically fetched and viewed by users, and it can be tailored to fit your company's specific policies.
/// </summary>
/// <remarks>
/// More info http://www.oreillynet.com/lpt/a/1554
/// </remarks>
public class P3PAttribute : ActionFilterAttribute
{
    /// <summary>
    /// On Action Executing add a compact policy "p3p" HTTP header
    /// </summary>
    /// <param name="filterContext"></param>
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        HttpContext.Current.Response.AddHeader("p3p","CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"");

        base.OnActionExecuting(filterContext);
    }
}

使用示例:

[P3P]
public class HomeController : Controller
{
    public ActionResult Index()
    {
        ViewData["Message"] = "Welcome!";

        return View();
    }

    public ActionResult About()
    {
        return View();
    }
}

14

这是一个很重要的话题,但是我发现一个重要的细节(至少对我而言是必不可少的)没有在此处或其他任何地方发布(如果我错过了,我表示歉意),那就是P3P线必须是传递了从第三方服务器发送的每个文件的标头,甚至没有设置或使用Cookie的文件,例如Javascript文件或图像。否则,cookie将被阻止。我在这里的帖子中对此有更多了解:http : //posheika.net/?p=110


5

任何在node.js中有此问题的人。

然后添加此p3p模块,并在中间件上启用此模块。

npm install p3p

我正在使用快递,所以我将其添加到app.js中

首先在app.js中要求该模块

var express = require('express');
var app = express();
var p3p = require('p3p');

然后将其用作中间件

app.use(p3p(p3p.recommended));

它将在res对象上添加p3p标头。无需做任何额外的事情。

您将在以下位置获得更多信息:

https://github.com/troygoode/node-p3p


5

如果有人在寻找Apache线路;我们用了这个。

标头集P3P“ CP = \”谢谢IE8 \“”

只要有P3P标头,我们将CP值设置为什么都没有关系。


4

可能要做的一件事是将该域添加到工具中允许的站点中-> Internet选项->隐私->站点:somedomain.com->允许->确定。


23
是的,如果您只关心它在计算机上是否可以运行。向每个访客建议这一点并不完全实用。
Piskvor于

3

这篇文章提供了有关P3P的一些评论,以及减少IE7和IE8问题的捷径解决方案。


1
引用该文章:“它基本上说“我们不会收集您的任何个人数据””-祝您好运。我看到零个站点实际上履行了该策略中设置的令牌(根本不收集任何数据,甚至不收集匿名统计数据-服务器访问日志,有人吗?)。提供的其他策略也很难实现(您有任何种类的Web分析吗?Bam,您只是违反了P3P策略)。因此,该文章可以归纳为“公然撒谎,无论如何没人在乎”。的确是整个互联网上最有用的文章
Piskvor在2011年

引用文章的另一部分内容:“互联网上关于P3P,紧凑型策略和IE7的要求的信息很少,免费的信息也很少,而IE7绝对没有提供有用的调试输出,例如为什么阻止了cookie。” 这似乎是完全正确的!我花了整整一天的时间来探索为什么IE7 / 8的行为方式不同于其他所有浏览器,所以我很高兴找到这篇文章。现在可能是时候意识到P3P是一个无效的规范了,大多数人宁愿只是解决它。这篇文章可能是该主题上最有用的文章。
Henrik AastedSørensen

“互联网上几乎没有很好的免费信息”-在2007年(撰写本文时)本来是正确的,但是现在互联网上有很多信息,甚至免费的工具也可以帮助您建立P3P政策,您的具体情况。我不是在为P3P辩护,但说“ eh死它,只是让它消失”可能会带来昂贵的后果(因为您对网站的主张非常明确)。P3P是否实际上具有法律约束力?尚未经过测试(IIRC),但我不想成为该诉讼的最终结果。
Piskvor在2011年

1
@Piskvor-请发布免费的P3P工具。我尝试去的所有商品都被链接农场和虚假搜索所收购。IBM撤消了他们的免费工具。P3P支持似乎就像在2012
Fiasco Labs

2
在softpedia上找到了IBM Alphaworks p3p编辑器:softpedia.com/get/Security/Security-Related/…–
Fiasco Labs

3

我这里没有提到的一种解决方案是使用会话存储而不是cookie。当然,这可能无法满足每个人的要求,但是在某些情况下,这很容易解决。


1
好点子。请注意,在发布此问题时,不存在对会话存储的支持,尤其是在IE中。但是,时代在变;)
Piskvor在

3

我正在研究有关通过Azure访问控制服务进行注销的问题,并且无法连接任何东西。

然后,偶然发现了该帖子https://blogs.msdn.microsoft.com/ieinternals/2011/03/10/beware-cookie-sharing-in-cross-zone-scenarios/

简而言之,IE不会跨区域共享Cookie(例如Internet与受信任的站点)。

因此,如果您的IFrame目标和html页面位于不同区域的P3P中,将无济于事。


我很惊讶这在2016年仍然有意义:)
Piskvor离开了这座建筑

1
IE中P3P的状态记录在这里:msdn.microsoft.com/zh-cn/library/mt146424(v=vs.85).aspx,前途一片光明:)
Frode Nilsen



1

您还可以这样组合p3p.xml和policy.xml文件:

/home/ubuntu/sites/shared/w3c/p3p.xml

<META xmlns="http://www.w3.org/2002/01/P3Pv1">
  <POLICY-REFERENCES>
    <POLICY-REF about="#policy1">
      <INCLUDE>/</INCLUDE>
      <COOKIE-INCLUDE/>
    </POLICY-REF>
  </POLICY-REFERENCES>
  <POLICIES>
    <POLICY discuri="" name="policy1">
      <ENTITY>
        <DATA-GROUP>
          <DATA ref="#business.name"></DATA> 
          <DATA ref="#business.contact-info.online.email"></DATA> 
        </DATA-GROUP>
      </ENTITY>
      <ACCESS>
        <nonident/>
      </ACCESS>
      <!-- if the site has a dispute resolution procedure that it follows, a DISPUTES-GROUP should be included here -->
      <STATEMENT>
        <PURPOSE>
          <current/>
          <admin/>
          <develop/>
        </PURPOSE>
        <RECIPIENT>
          <ours/>
        </RECIPIENT>
        <RETENTION>
          <indefinitely/>
        </RETENTION>
        <DATA-GROUP>
          <DATA ref="#dynamic.clickstream"/>
          <DATA ref="#dynamic.http"/>
        </DATA-GROUP>
      </STATEMENT>
    </POLICY>
  </POLICIES>
</META>

我发现添加标头的最简单方法是通过Apache代理并使用mod_headers,如下所示:

<VirtualHost *:80>
  ServerName mydomain.com

  DocumentRoot /home/ubuntu/sites/shared/w3c/

  ProxyRequests off
  ProxyPass /w3c/ !
  ProxyPass / http://127.0.0.1:8080/
  ProxyPassReverse / http://127.0.0.1:8080/
  ProxyPreserveHost on

  Header add p3p 'P3P:policyref="/w3c/p3p.xml", CP="NID DSP ALL COR"'
</VirtualHost>

因此,我们将除/w3c/p3p.xml以外的所有请求代理到我们的应用程序服务器。

您可以使用W3C验证器进行全部测试


这会发送带有304个请求的标头吗?如果您发送带有304的P3P标头,则某些版本的IE实际上会删除cookie。–
Joshua

抱歉,由于我不再处理此代码,所以我不知道。如果它是一个问题,你或许可以迫使Apache中的状态码200
克里斯


1

我知道在这个问题上做出自己的贡献还为时已晚,但是我浪费了很多时间,也许这个答案可能会有所帮助。

我试图在我的网站上调用第三方Cookie,但是即使在安全级别较低的情况下,它也无法在Internet Explorer 10上正常工作...不要问我为什么。在iframe中,我使用ajax调用了read_cookie.php(回显$ _COOKIE)。

而且我不知道为什么我无法设置P3P策略来解决问题...

在搜索过程中,我看到了一些有关使JSON中的cookie工作的信息。我什至没有尝试,因为我认为如果cookie不会通过iframe,它将不再通过数组。

猜猜怎么做!因此,如果您对cookie进行json_encode编码,然后在您的ajax请求之后进行解码,您将获得它!

也许我错过了一些事情,如果我错过了,我会道歉,但是我从未见过如此愚蠢的事情。出于安全考虑,阻止第三方Cookie,但是如果经过编码则让其通过?现在的安全性在哪里?

我希望这篇文章能对某人有所帮助,如果我错过了一些东西并且我很笨,请教育我!


有趣的...所以您正在用JS解码cookie?
Piskvor于

不,我只是使用php函数json_encode()将Cookie写入JSON数组中,然后通过ajax JSON调用返回。
pierreaurelemartin 2012年

1

终于为我工作了(经过了很多努力,并使用IBM的策略生成器生成了一些策略)。您可以在以下位置找到策略生成器:http : //www.softpedia.com/get/Security/Security-Related/P3P-Policy-Editor.shtml

我再也无法从IBM官方网站下载生成器。

我在Web应用程序的根文件夹中创建了这些文件

/index.php
/w3c/policy.html (Human readable format)
/w3c/p3p.xml
/w3c/policy.p3p
  1. Index.php:只需发送一个附加头:
header('P3P: policyref="/w3c/p3p.xml", CP="ALL DSP NID CURa ADMa DEVa HISa OTPa OUR NOR NAV DEM"');
  1. p3p.xml的内容
<META>
    <POLICY-REFERENCES>
        <POLICY-REF about="/w3c/policy.p3p#App">
            <INCLUDE>/</INCLUDE>
            <COOKIE-INCLUDE/>
        </POLICY-REF>
    </POLICY-REFERENCES>
</META>
  1. 我policy.html文件的内容

<html>
<head>
<STYLE type="text/css">
title { color: #3333FF}
</STYLE>
<title>Privacy Statement for YOUR COMPANY NAME</title>
</head>
<body>
<h1 class="title">Privacy Policy</h1>
<!-- "About Us" section of privacy policy -->
<h2>About Us</h2>
<p>This is a privacy policy for YOUR COMPANY NAME.
Our homepage on the Web is located at <a href="YOURWEBSITE">
YOURWEBSITE</a>.
The full text of our privacy policy is available on the Web at 
<a href="ABSOLUTE URL OF THIS FILE">
ABSOLUTE URL OF THIS FILE</a>
This policy does not tell users where they can go to exercise their opt-in or opt-out options.
<p>We invite you to contact us if you have questions about this policy.
You may contact us by mail at the following address:
<pre>FIRSTNAME LASTNAME
YOUR ADDRESS HERE
</pre>
<p>You may contact us by e-mail at 
<a href="mailto:info@YOURMAIL.de">
info@YOURMAIL.eu</a>. 
You may call us at TELEPHONENUMBER.
<!-- "Privacy Seals" section of privacy policy -->
<h2>Dispute Resolution and Privacy Seals</h2>
<p>We have the following privacy seals and/or dispute resolution mechanisms.
If you think we have not followed our privacy policy in some way, they can help you resolve your concern.
<ul>
<li>
<b>Dispute</b>:
Contact us for further information
</ul>
<!-- "Additional information" section of privacy policy -->
<h2>Additional Information</h2>
<p>
This policy is valid for 1 day from the time that it is loaded by a client.
</p>
<!-- "Data Collection" section of privacy policy -->
<h2>Data Collection</h2>
<p>P3P policies declare the data they collect in groups (also referred to as "statements").
This policy contains 1 data group.
<hr width="50%" align="center">
<h3>Group "App control data"</h3>
<p>We collect the following information:
<ul>
<li>HTTP cookies</li>
</ul>
<p>This data will be used for the following purposes:</p>
<ul>
<li>Completion and support of the current activity.</li>
<li>Web site and system administration.</li>
<li>Research and development.</li>
<li>Historical preservation.</li>
<li>Other purposes<p>Control Flow of the application</p></li>
</ul>
<p>This data will be used by ourselves and our agents.
<p>The data in this group has been marked as non-identifiable. This means that there is no
reasonable way for the site to identify the individual person this data was collected from.
<p>The following explanation is provided for why this data is collected:</p>
<blockquote>This cookie data is only used to control the application within an iframe (e.g. a Facebook App)</blockquote>
<!-- "Use of Cookies" section of privacy policy -->
<hr width="50%" align="center">
<h2>Cookies</h2>
<p>Cookies are a technology which can be used to provide you with tailored information from a Web site. A cookie is an element of data that a Web site can send to your browser, which may then store it on your system. You can set your browser to notify you when you receive a cookie, giving you the chance to decide whether to accept it.
<p>Our site makes use of cookies.
Cookies are used for the following purposes:
<ul>
<li>Site administration
<li>Completing the user's current activity
<li>Research and development
<li>Other
(Control Flow of the application)
</ul>
<!-- "Compact Policy Explanation" section of privacy policy -->
<hr width="50%" align="center">
<h2>Compact Policy Summary</h2>
<p>The compact policy which corresponds to this policy is:
<pre>
    CP="ALL DSP NID CURa ADMa DEVa HISa OTPa OUR NOR NAV"
</pre>
<p>The following table explains the meaning of each field in the compact policy.
<center><table width="80%" border="1" cols="2">
<tr><td align="center" valign="top" width="20%"><b>Field</b></td><td align="center" valign="top" width="80%"><b>Meaning</b></td></tr>
<tr><td align="left" valign="top" width="20%"><tt>CP=</tt></td>
<td align="left" valign="top" width="80%">This is the compact policy header; it indicates that what follows is a P3P compact policy.</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>ALL</tt></td>
<td align="left" valign="top" width="80%">
Access to all collected information is available.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>DSP</tt></td>
<td align="left" valign="top" width="80%">
The policy contains at least one dispute-resolution mechanism.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>NID</tt></td>
<td align="left" valign="top" width="80%">
The information collected is not personally identifiable.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>CURa</tt></td>
<td align="left" valign="top" width="80%">
The data is used for completion of the current activity.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>ADMa</tt></td>
<td align="left" valign="top" width="80%">
The data is used for site administration.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>DEVa</tt></td>
<td align="left" valign="top" width="80%">
The data is used for research and development.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>HISa</tt></td>
<td align="left" valign="top" width="80%">
The data is used for historical archival purposes.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>OTPa</tt></td>
<td align="left" valign="top" width="80%">
The data is used for other purposes.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>OUR</tt></td>
<td align="left" valign="top" width="80%">
The data is given to ourselves and our agents.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>NOR</tt></td>
<td align="left" valign="top" width="80%">
The data is not kept beyond the current transaction.
</td></tr>
<tr><td align="left" valign="top" width="20%"><tt>NAV</tt></td>
<td align="left" valign="top" width="80%">
Navigation and clickstream data is collected.
</td></tr>
</table></center>
<p>The compact policy is sent by the Web server along with the cookies it describes.
For more information, see the P3P deployment guide at <a href="http://www.w3.org/TR/p3pdeployment">http://www.w3.org/TR/p3pdeployment</a>.
<!-- "Policy Evaluation" section of privacy policy -->
<hr width="50%" align="center">
<h2>Policy Evaluation</h2>
<p>Microsoft Internet Explorer 6 will evaluate this policy's compact policy whenever it is used with a cookie.
The actions IE will take depend on what privacy level the user has selected in their browser (Low, Medium, Medium High, or High; the default is Medium.
In addition, IE will examine whether the cookie's policy is considered satisfactory or unsatisfactory, whether the cookie is a session cookie or a persistent cookie, and whether the cookie is used in a first-party or third-party context.
This section will attempt to evaluate this policy's compact policy against Microsoft's stated behavior for IE6.
<p><b>Note:</b> this evaluation is currently experimental and should not be considered a substitute for testing with a real Web browser.
<p><b>Satisfactory policy</b>: this compact policy is considered <em>satisfactory</em> according to the rules defined by Internet Explorer 6.
IE6 will accept cookies accompanied by this policy under the High, Medium High, Medium, Low, and Accept All Cookies settings.
</body></html>

  1. policy.p3p的内容
<?xml version="1.0"?>
<POLICIES xmlns="http://www.w3.org/2002/01/P3Pv1">
    <!-- Generated by IBM P3P Policy Editor version Beta 1.12 built 2/27/04 1:19 PM -->

    <!-- Expiry information for this policy -->
    <EXPIRY max-age="86400"/>

<POLICY
    name="App"
    discuri="ABSOLUTE URL TO policy.html"
    xml:lang="de">
    <!-- Description of the entity making this policy statement. -->
    <ENTITY>
    <DATA-GROUP>
<DATA ref="#business.name">COMPANY NAME</DATA>
<DATA ref="#business.contact-info.online.email">info@YOURMAIL.eu</DATA>
<DATA ref="#business.contact-info.online.uri">YOURWEBSITE</DATA>
<DATA ref="#business.contact-info.telecom.telephone.number">YOURPHONENUMBER</DATA>
<DATA ref="#business.contact-info.postal.organization">FIRSTNAME LASTNAME</DATA>
<DATA ref="#business.contact-info.postal.street">STREET</DATA>
<DATA ref="#business.contact-info.postal.city">CITY</DATA>
<DATA ref="#business.contact-info.postal.stateprov">STAGE</DATA>
<DATA ref="#business.contact-info.postal.postalcode">POSTALCODE</DATA>
<DATA ref="#business.contact-info.postal.country">Germany</DATA>
    </DATA-GROUP>
    </ENTITY>

    <!-- Disclosure -->
    <ACCESS><all/></ACCESS>


    <!-- Disputes -->
    <DISPUTES-GROUP>
        <DISPUTES resolution-type="service" service="YOURWEBSITE CONTACT FORM" short-description="Dispute">
            <LONG-DESCRIPTION>Contact us for further information</LONG-DESCRIPTION>
    <!-- No remedies specified -->
        </DISPUTES>
    </DISPUTES-GROUP>

    <!-- Statement for group "App control data" -->
    <STATEMENT>
        <EXTENSION optional="yes">
            <GROUP-INFO xmlns="http://www.software.ibm.com/P3P/editor/extension-1.0.html" name="App control data"/>
        </EXTENSION>

    <!-- Consequence -->
    <CONSEQUENCE>
This cookie data is only used to control the application within an iframe (e.g. a Facebook App)</CONSEQUENCE>

    <!-- Data in this statement is marked as being non-identifiable -->
    <NON-IDENTIFIABLE/>

    <!-- Use (purpose) -->
    <PURPOSE><admin/><current/><develop/><historical/><other-purpose>Control Flow of the application</other-purpose></PURPOSE>

    <!-- Recipients -->
    <RECIPIENT><ours/></RECIPIENT>

    <!-- Retention -->
    <RETENTION><no-retention/></RETENTION>

    <!-- Base dataschema elements. -->
    <DATA-GROUP>
    <DATA ref="#dynamic.cookies"><CATEGORIES><navigation/></CATEGORIES></DATA>
    </DATA-GROUP>
</STATEMENT>

<!-- End of policy -->
</POLICY>
</POLICIES>

它转到父窗口服务器目录还是iframe服务器目录?
JackTheKnife


0

对于任何试图使P3P精简策略使用静态内容的人:

它是唯一的,如果你能发送自定义服务器端的响应报头与静态内容成为可能。

有关更详细的说明,请参见我的回答:在HTML中设置P3P代码



-1

更好的解决方案是在iframe中对要获取/设置Cookie的页面进行Ajax调用...


1
AJAX在这里无济于事:iframe中的任何 cookie处理都不太可信(“第三方cookie”),并且在IE中需要通过“隐私权政策”过滤器-不管您是否要通过AJAX调用设置cookie, .cookie操纵或通过常规页面(经过测试)。
Piskvor于

否,如果您进行的ajax调用使用HTTP(在iframe中)设置cookie,则IE6绕过安全策略并设置cookie。请在降低投票权之前确保我的解决方案是错误的。
卡·马太斯

请参阅newmoon.wz.cz/test/page.php。您可以通过AJAX设置cookie,但您要么a)启动新会话,要么b)从JS设置会话ID-一个巨大的安全漏洞(XSRF)。是的,我道歉。但是,您的解决方案看起来比以前更糟:进行安全漏洞对我来说似乎很糟糕。
Piskvor于

(对我而言,“绕过安全策略” 至少看起来像是一个错误-如果有策略,则出于某种原因就存在。说“拧紧安全策略/用户首选项,我们会更好”)是危险的滑坡。此外,您是否要让功能依赖(尚未解决)尚未解决的已知错误?)
Piskvor在2009年

设置新会话?你在说什么?大多数浏览器都支持此功能,而没有p3p标头的内容,因此我不明白通过Ajax进行操作有何不同……
卡·马特伊斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.