使用JavaScript在某人';但是在框架内的每个页面加载上都会获得一个新的会话ID(PHP7.4还是SameSite问题?)

使用JavaScript在某人';但是在框架内的每个页面加载上都会获得一个新的会话ID(PHP7.4还是SameSite问题?),javascript,php,jquery,session,samesite,Javascript,Php,Jquery,Session,Samesite,我有一个客户在其网站上链接到的脚本,如下所示: 这将在他们的页面上嵌入一个表单,他们在其中插入脚本,如下所示: 脚本本身执行3个AJAX调用: 当第一次加载页面时,它使用config属性调用服务器以获取应该显示的表单。这是config.php AJAX调用 将表单呈现给用户后,它会记录访问以存储印象数据(例如:UTM跟踪代码、用户代理等),并返回一个用于关联的ID。这是load.php AJAX调用 若你们将鼠标移出页面,它会向上发送页面统计信息(页面上的时间、滚动细节等),以便跟踪可用性。这

我有一个客户在其网站上链接到的脚本,如下所示:

这将在他们的页面上嵌入一个表单,他们在其中插入脚本,如下所示:

脚本本身执行3个AJAX调用:

  • 当第一次加载页面时,它使用
    config
    属性调用服务器以获取应该显示的表单。这是config.php AJAX调用
  • 将表单呈现给用户后,它会记录访问以存储印象数据(例如:UTM跟踪代码、用户代理等),并返回一个用于关联的ID。这是load.php AJAX调用
  • 若你们将鼠标移出页面,它会向上发送页面统计信息(页面上的时间、滚动细节等),以便跟踪可用性。这是log.php AJAX调用
  • 这些AJAX调用中的每一个都作为单独的会话提交到服务器,提交加载的表单(保存.php)也是如此。我可以看到在我的Chrome DevTools应用程序选项卡中存储了多个PHPSESSID cookies:(1)具有SameSite=None和path
    /leads/new/forms/resize/
    (这是JavaScript注入器所在的位置)和(2)具有path
    /
    但未设置SameSite。这两个都被标记为安全的,尽管我不确定第一个来自哪里,因为每当我为了解决这个问题而显式调用cookie路径时,我总是指定一个路径
    /

    我尝试了许多修复程序,既与我们从PHP7.2升级到7.4有关,也与Chrome的SameSite更改有关。我的一些尝试包括:

  • 将xhrFields/withCredentials位添加到AJAX调用中
  • 添加
    头('Set-Cookie:'.session_name().='.session_id().;SameSite=None;Secure')在每个脚本中的会话_start()调用之后
  • 添加
    session\u set\u cookie\u参数(['samesite'=>'None','secure'=>true])在每个脚本中调用会话_start()之前
  • 在iFrame的上下文中,为什么每次加载页面时都会有一个新的会话?在站点本身内浏览时,这不会发生,只能从iFrame的上下文中进行浏览(在本演示yt074.addons.la中,即使我将iFrame托管在与iFrame相同的域中,也会发生这种情况)