0

尽管我的 P3P 标头是正确的,但 IE9 似乎为第三方请求保留了一个单独的列表。

我添加了以下 P3P

header('P3P:CP="NOI DSP COR CURa ADMa DEVa PSAa PSDa OUR BUS IND UNI COM NAV INT", policyref="http://domain/w3c/p3p.xml"')

当然,正确设置域。它由 IBM 工具创建。接下来,我创建了 p3p xml 文件并使用 p3p 验证对其进行了测试。

一旦我调用了一个测试文件,说明什么都没有

    <?php

    header ('P3P:CP="NOI DSP COR CURa ADMa DEVa PSAa PSDa OUR BUS IND UNI COM NAV INT", policyref="http://padrichem.ds1.nl.dev/w3c/p3p.xml"');

    session_start();

    var_dump($_COOKIE);

它说 $_COOKIE 是空的,刷新它说 $_COOKIE[PHPSESSID] = 'id'

现在我从 iframe 中的远程位置调用同一个文件,它说 $_COOKIE 是空的,刷新它说 $_COOKIE[PHPSESSID] = 'DIFFERENT id'

当我禁用保护模式时,情况并非如此。然而,并非所有域都如此。

在硬盘上,我只能找到 iFrame(第三方)调用设置的 cookie。

有谁知道为什么会发生这种情况?

4

1 回答 1

0

您的问题很可能是因为 IE 在跨区域场景中如何处理 cookie:

请参阅以下内容:

IE9 - asp.net 无法访问第三方站点为我的域创建的 cookie
小心跨区域场景中的 Cookie 共享

于 2013-05-02T04:19:35.733 回答