iframe在Chrome中丢失重定向会话



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

所以情况是这样的:

  • index.php with嵌套iframe =>

    <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有关

我能要求一些白痴证明说明如何解决这个问题吗?

谢谢

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

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

KIKO软件感谢您的建议。

最新更新