即使我的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] ='不同的id'
当我禁用保护模式时,情况并非如此。但在所有领域都不是这样。
在硬盘上我只能找到iFrame(第三方)电话设置的cookie。
有没有人知道为什么会这样?
答案 0 :(得分:0)
您的问题很可能是因为IE如何在跨区域方案中处理Cookie:
请参阅以下内容:
IE9 - asp.net cannot access cookie created for my domain by third party site
Beware Cookie Sharing in Cross-Zone Scenarios