【问题标题】:Loading iframe from bookmarklet on 3rd party sites kills CakePHP Session从书签上的第三方网站加载的iframe杀死CakePHP的会话
【发布时间】:2011-01-16 04:30:09
【问题描述】:

我正在尝试从书签中弹出一个 iframe,其内容来自我的测试应用程序。测试应用程序做的不多,但让我登录并设置一些会话变量。首先,我使用 Perl 的 Catalyst 框架开发了它,并且效果很好。我可以在某个窗口或 iframe 中登录到测试应用程序,它会在 3rd 方网站上保持会话正常。

现在我需要使用 CakePHP 框架在 PHP 中做一些类似的事情。出于某种原因,在每个浏览器中,当 iframe 在第三方站点上打开时,会话就会消失。如果它在开发站点(与 iframe src 所在的站点相同)上启动,它会在登录会话中正常打开。 CakePHP 应用程序在标准的 Ubuntu Apache 2 安装上运行。

我发现一些文档谈论 IE 中的 P3P 标头会导致此类问题,但是 a) 它存在于所有浏览器中,b) 我使用 Fiddler 观看并看到 P3P 标头正在发送。

我还没有查看 Catalyst 应用程序的流量,看看有什么不同。我想这是我的下一步,但坦率地说,我已经投入了足够的时间。我想我会四处打听,看看我能找到什么。

谢谢, 尼克

【问题讨论】:

    标签: php perl session cakephp apache2


    【解决方案1】:

    这是我发现的设计。 CakePHP 在 core.php 中有设置,为会话处理增加了额外的安全性。

    这个页面有一些很好的提示:
    http://bakery.cakephp.org/articles/view/how-to-bend-cakephp-s-session-handling-to-your-needs

    基本上我是这样做的:

    core.php

    Configure::write('Session.save', 'my_session_handler');
    

    my_session_handler.php

    ini_set('session.referer_check', ''); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-07
      • 2021-08-13
      • 1970-01-01
      • 2021-08-13
      • 1970-01-01
      • 1970-01-01
      • 2016-07-01
      • 2012-02-13
      相关资源
      最近更新 更多