【发布时间】:2011-08-29 05:56:27
【问题描述】:
我在这里看到了很多关于如何让 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 关于这个主题的 SO 帖子:Cookie blocked/not saved in IFRAME in Internet Explorer,但我无法重现他在演示网站上所做的事情:http://newmoon.wz.cz/test/page.php?send_p3p=1。我认为这是因为我得到了邪恶的眼睛而他没有。我已经完成了我所读到的一切作为摆脱邪恶的建议,但它仍然存在。嘲笑我。
如果你想试试我的测试页面:http://truelike.com/js/bobs/frametest.php设置/读取页面在 iframe 外部查看时工作正常,但在使用 IE 时根本无法在内部工作。
作为参考,我在后端使用 PHP。
任何帮助都将不胜感激 - 我们在这里变得绝望。
谢谢!
【问题讨论】:
标签: internet-explorer cookies iframe cross-domain p3p