我在这里看到了很多关于如何让 cookie 在 IE 的 iframe 中工作的帖子,并且我尝试了几种解决方案,但到目前为止都没有运气。这是我正在处理的问题:
我有一个通过 Javascript 在客户网站(小部件)上创建的 iframe。我无法控制客户的网站。我需要设置 cookie 以使用户在 iframe 中保持登录状态,它适用于 Chrome 和 Firefox,但不适用于 IE 7/8。我没有测试过 IE 6,但我认为它也有同样的问题。
我使用 IBM 的策略编辑器创建了一个 P3P 策略,编辑器说紧凑策略在 IE 的安全性下是可以接受的,无论设置为低、中还是高。我使用的CP是:
P3P: policyref="/w3c/p3p.xml" CP="CAO DSP COR CURa ADMa DEVa PSAa PSDa CONi TELi OUR IND PHY ONL UNI COM NAV INT DEM CNT PRE"
(我尝试了其他几个人们认为有效的 CP,但结果没有任何差异。)
网络服务器 (NGINX) 为每个文件提供此 P3P 标头。我不是从代码中提供它。
p3p.xml 文件存在并且匹配紧凑策略。p3p.xml 使用 W3C P3P 验证器进行验证。
即使使用 P3P 标头(无论我尝试了哪一个),IE 都会在底部的状态栏中给我“邪恶的眼睛”,并且不会让我设置 cookie。它们在隐私报告中显示为已阻止。
我阅读了 Piskvor 关于这个主题的帖子:Cookie 被阻止/未保存在 Internet Explorer 的 IFRAME 中,但我无法重现他在演示站点上所做的事情:http: //newmoon.wz.cz/test /page.php?send_p3p=1。我认为这是因为我得到了邪恶的眼睛而他没有。我已经完成了我所读到的一切作为摆脱邪恶的建议,但它仍然存在。嘲笑我。
如果您想尝试一下,我的测试页面在这里:http: //truelike.com/js/bobs/frametest.php设置/读取页面在 iframe 外部查看时工作正常,但在内部根本不工作使用 IE 时。
作为参考,我在后端使用 PHP。
任何帮助都将不胜感激 - 我们在这里变得绝望。
谢谢!