我们有一个网站(www.example.com),该网站将用户带到一系列第三方页面以验证付款详细信息,这在iframe中进行。最初,来自www.example.com的本地页面被加载到iframe中,并且用户被重定向到第三方URL。用户完成第三方步骤后,会将它们重定向302到iframe中我们网站(www.example.com)上的页面。
此功能适用于我们测试过的所有浏览器,但IE 11似乎已丢失,但IE 11除外。我们已经在Windows 7和8.1的台式机和“ Metro”模式下检查了此问题,并且所有版本均存在此问题。
当用户浏览我们的网站时,我们会设置一个会话cookie,该会话cookie会正确发送到最初加载到iframe中的第一方页面。但是,一旦用户浏览了该iframe中的某些第三方页面,会话cookie就不会与下一个请求一起发送。
如果我们将IE 11的隐私设置设为最低值,则此问题将消失,并且一切正常。
到目前为止,我发现的所有潜在解决方案都与P3P标头相关。我们已经建立了有效且正确的P3P标头和XML策略文件,并且此问题仅在IE 11中出现。
更新:我们还有其他一些使用JS设置的cookie。这些都按预期持续存在。不同之处在于有效期(对于JS cookie来说是1年,对于会话cookie来说是1个月),域(对于JS cookie来说是“ example.com”,对于会话cookie来说是空)以及它们是否是“仅HTTP”(对于JS是false) cookie,适用于会话cookie)。
我已经尝试根据会话cookie的JS cookie设置所有这些选项,但是没有区别。
更新2:经过更多测试后,我无法创建一个重现此问题的测试用例。我尝试在实时代码中测试的任何其他cookie都似乎已损坏,即使它们设置的代码与可以正常工作的JS cookie完全相同。简而言之; 我还没有找到有效和无效的Cookie模式。
需要注意的一件事可能是,cookie并没有被删除,只是没有被发送到最终请求。如果加载了另一个页面,则cookie会神奇地重新出现并发送;这使我相信这是围绕iframe和P3P的错误。
更新3(第3天): IE 11对cookie的处理继续让我感到困惑。我越深入迷宫,迷失在不断变化的墙壁中的人就越多。而且这里有鬼。半梦半醒的安全政策的片段编织成某种空灵的生物,每走一步都会跟踪并嘲弄我。刚开始时,我以一种难以捉摸的形式被冻僵,恐惧,震惊,只是在视线之外飞了起来,但是每过一个小时,我就从其邻近性的知识中获得更多的安慰。这可能是我被派到这里面对的那只野兽吗?在这样的时候我怎么能杀死我唯一的同伴?