【问题标题】:iframe looses session on redirection in Chromeiframe 在 Chrome 中失去重定向会话
【发布时间】:2021-01-28 08:36:10
【问题描述】:

我需要帮助解决我不知道如何解决的问题。我遇到的问题是,当我在 iframe 中嵌套另一个寻呼机并且 iframe 在其内部重定向时,它会丢失会话数据。

所以场景是这样的:

  • 带有嵌套 iframe 的 index.php =>

    <iframe src="http://somedomain/global.php?user=someuser&site=1234567" style="width:100%;height:100%;border:0px;"></iframe>

  • global.php 文件在另一个域上创建会话并且会话存在 =>

    $sess_path = '/somepath/';
    session_save_path($sess_path);
    ini_set('session.cookie_samesite', 'None');
    session_start();
    $_SESSION['user'] = $_GET['user'];
    $_SESSION['site'] = $_GET['site'];
    header('location: ../home.php');
    
  • 在 iframe 中 global.php 文件重定向到 home.php 并且会话信息丢失

    $sess_path = '/somepath/';
    $sess_timeout = 30;
    ini_set('session.gc_maxlifetime', $sess_timeout);
    ini_set('session.cookie_lifetime', $sess_timeout);
    ini_set('session.cache_expire', $sess_timeout);
    ini_set('session.gc_probability', 100);
    ini_set('session.gc_divisor', 100);
    session_save_path($sess_path);
    ini_set('session.cookie_samesite', 'None');
    session_start();
    
  • 如果我 print_r $_SESSION 它是空的

我四处搜索并找到了一些答案,但无法使其发挥作用(我很确定我不理解某些东西)。首先,我的应用程序仅基于 Chrome 浏览器,我发现 chrome 现在在处理第三部分重定向方面发生了一些变化。我在 global.php 和 home.php 中都添加了ini_set('session.cookie_samesite', 'None');,但这并没有什么区别。

如果我在 Firefox 上尝试我的测试设置,它会按预期工作,所以这只会让我得出结论,这与 Chrome 有关

我可以要求一些关于如何解决这个问题的白痴证明吗?

谢谢

【问题讨论】:

  • 你能确认global.phphome.php都在同一个域下的同一个目录下吗?我认为这是真的,但你从来没有明确说过。
  • 是的,他们在同一个域中
  • 我没有声称有解决方案,但我找到了this link,在其他地方我还发现您的cookie 需要具有Secure 属性。我还注意到您使用的是 HTTP 协议而不是 HTTPS 协议。也许这不是一个好主意,Google 喜欢 HTTPS。
  • @KIKOSoftware 我认为你是对的,在 Chrome 中查看 DevTools 上的网络选项卡后,它显示错误未启用安全并且 cookie 被拒绝。你知道任何关于如何在 ubuntu 上设置 https 的好指南吗?
  • 不,抱歉,我没有 HTTPS 指南,我在“Plesk”中使用“Let's Encrypt”,这样就可以解决所有问题。叫我懒惰。 ???不知道这对你有没有帮助:letsencrypt.org/docs

标签: php session iframe


【解决方案1】:

通过使我的网站和目标网站 https 来解决我的问题,现在在 global.php 中添加两个 ini 设置后一切正常:

    ini_set('session.cookie_samesite', 'None');
    ini_set('session.cookie_secure', 1);

KIKO Software 感谢您的建议。

【讨论】:

    猜你喜欢
    • 2013-11-17
    • 1970-01-01
    • 2021-06-09
    • 1970-01-01
    • 2020-04-05
    • 2012-09-17
    • 2012-08-17
    • 1970-01-01
    • 2014-09-14
    相关资源
    最近更新 更多