Chrome 在来自第 3 方 IFRAME 时不会保留我的 _SESSION 变量,但在直接访问时可以完美运行

2024-04-01

直到几周后,我所有的网站都运行良好.

我编写代码并在 CodeCanyon 上出售。

但最近(今天)我注意到我无法再登录我在那里出售的 PHP 小代码片段。

如果我直接在我的域上工作,就像在 URL 栏中输入链接一样,那么在任何浏览器中一切都会完美运行(meaning, all my _SESSION vars are kept, all throughout).

但是当我检查我的代码片段时(all using password-protection and _SESSIONS var, on CodeCanyon 的网站, 我似乎无法在 Google Chrome 中登录它们,因为 _SESSIONS 变量只是没有通过从一页到另一页。

奇怪的是,在Firefox甚至在微软边缘他们确实工作。

我主要工作于谷歌浏览器 (我99.5%的时间),这是一个很好的浏览器。

但在这种情况下,我的登录受密码保护的网站来自一个第三方网站,托管在他们的 IFRAME 中, my _SESSIONS vars just don't seem to work (尽管他们多年来一直这样做!)

I have session_start();位于所有文件的顶层。

我什至删除了cache and cookies为了第三方网站并为我自己的域名, 乃至重新安装了Chrome again. Nothing.

问这个问题之前在网上查了一下,貌似可能是pass的问题_SESSION var through从一个HTTPS网站向HTTP一。第 3 方网站(CodeCanyon.net) is HTTPS我的是HTTP。但是,为什么一切在 Firefox 和 Microsoft Edge 中都能完美运行呢?

有没有针对这种情况的基于 PHP 的解决方法?

我不得不说,直到 3-4 周前,多年来一切都运行良好,并且我偶然发现我无法登录我在 CodeCanyon 上出售的 DEMO 网站,today.

=======================

第一次编辑:

  • 只是为了让事情更加直观,当从第 3 方供应商网站的 IFRAME 访问我的代码时,在 Firefox 上,它会显示 session_id() 并保留在那里,即使我刷新页面、登录并正确执行所有操作。
  • 在 Chrome 中,它不起作用的地方,每次我刷新我的代码所在的页面时,都会有一个不同的session_id(),这在login.php FORM中也是不同的。为什么?

===============

经过6个小时的网上挖掘,我找到了答案。

我的 _SESSIONS 在一个 HTTPS 安全主机(在 IFRAME 中加载)和我的 HTTP 不安全主机之间传输(交叉引用)所需的代码是添加以下代码

ini_set('session.cookie_samesite', 'None');
ini_set('session.cookie_secure', 'true');
session_start();

这告诉浏览器我允许在两个不同主机之间传输(cookie_samesite = 无)通过安全的 HTTPS(cookie_secure = True)_SESSION数据,因此可以启动_SESSION。 我说的是 PHP 中的 _SESSION cookie 服务器端变量。

但是为了跨域或两个不同主机之间安全传输 _SESSION 变量(xxx.com and yyy.net),我的端也必须是 HTTPS。

因此,将 _SESSION 变量从一个主机传输到另一个不同主机的唯一方法是真正的安全连接,如果您没有启用 HTTPS, 你需要获取 HTTPS 证书为您的域名。

所以上面的这些变量起作用ONLY如果你有已启用 HTTPS在您的域上 (例如,去买一个HTTPS证书,在我国价格从14 EUR,通常可以在拥有域名和托管的托管公司上找到这些)。

===================

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Chrome 在来自第 3 方 IFRAME 时不会保留我的 _SESSION 变量,但在直接访问时可以完美运行 的相关文章

  • 免费 PHP 登录库 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • PHP 通过 SSL 连接到 MS SQL

    我想要实现的目标非常简单 我想通过安全连接从 PHP 脚本连接到外部 MS SQL 数据库 然而 这已被证明是有问题的 到目前为止 经过三个小时的研究 我不知所措 客户端的平台是Ubuntu 这意味着我无法使用SQLSRV 安全连接已经在不
  • PHP MongoDb 驱动程序:如何设置执行代码的超时

    我有以下代码 它在 MongoDb 端执行一段代码 mongoCode new MongoCode Some JS code db gt execute mongoCode array socketTimeoutMS gt 1000000
  • CakePHP 视图包括其他视图

    我有一个 CakePHP 应用程序 在某些时候会显示带有产品媒体 图片或视频 的视图 我想知道是否有某种方式可以包含另一个威胁视频或威胁图片的视图 具体取决于标志 我想将这些 小视图 用于其他几个目的 所以它应该 像 蛋糕组件一样 以便重用
  • 使用 PHP glob 列出 FTP 服务器上的文件不起作用

    我使用此代码来访问目录 location files pictures glob location png 我想使用 FTP 访问远程路径 location opendir ftp user password host name files
  • 如何将表中不存在但原始SQL中存在的实体字段设置为别名?

    假设我们有一个这样的查询 SELECT CUSTOM EXPRESSION as virtualfield FROM users 用户的实体本身具有 虚拟字段 但映射注释没有 因为表没有该字段 假设它作为原始 SQL 执行 我们如何使用上面
  • PHP 中标头的使用

    非常简单的问题 这两个 PHP 版本 5 标头调用中哪一个是 最好的 header Not Modified true 304 header HTTP 1 1 304 Not Modified 我很确定第一个是最多价的 但只是好奇如果在 H
  • 使用值填充的 Symfony2 自定义字段类型

    这是先前问题的后续问题Symfony2 自定义表单类型或扩展 https stackoverflow com questions 24079288 symfony2 custom form type or extension 我正在尝试为订
  • docker 中的 php Curl 冲突 CURLOPT_FILE 和 CURLOPT_RETURNTRANSFER

    当我使用curl时CURLOPT FILE and CURLOPT RETURNTRANSFER选项 文件为空 没有任何curl错误 fp fopen saveTo w ch curl init fileUrl curl setopt ch
  • 是否可以用 PHP 编写电子邮件解析器? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 PHP 字符串中格式化 MySQL 代码

    是否有任何程序 IDE 可以在 PHP 字符串中格式化 MySQL 代码 例如 我使用 PHPStorm IDE 但它无法做到这一点 它对 PHP 和 MYSQL 执行此操作 但不适用于 php 字符串内的 MYSQL 我已准备好使用新的
  • 使用 PHP 从 Mongo 解码 JSON

    我已经看过这个线程 PHP 解码嵌套 JSON https stackoverflow com questions 3555335 php decode nested json并没有设法用它来解决我的问题 我目前正在从 Mongo 获取 J
  • session_start():无法解码会话对象

    我有时在使用 CodeIgniter 时遇到以下问题 错误 2019 03 05 19 57 26 gt 严重性 警告 gt session start 无法解码会话对象 会话已被销毁 system libraries Session Se
  • 在本地 SDK 服务器上工作时,实时 Google App Engine 上出现 404

    我已经在GAE标准环境上部署了几个PHP应用程序 一切正常 现在我正在部署一个新应用程序 该应用程序位于由gcloudSDK按预期工作 终端命令 dev appserver py log level warning app yaml 问题是
  • 使用 Vue 的多模式组件

    我在 Vue 中实现动态模式组件时遇到问题 A common approach I follow to display a set of data fetched from the db is I dump each of the rows
  • Laravel 搜索关系

    我有两个相关的模型 我正在尝试在产品中进行搜索 并且仅显示实际搜索结果 而不是找到该产品的类别的所有产品 我不想搜索任何类别 因为无论搜索什么或找到什么 类别都会始终显示 Example I have the following categ
  • 矩形超出边界是什么意思

    PPB Graphics2D PaintImageData 矩形超出界限是什么意思 我几乎在我检查的每一段代码中都看到了它 最新的代码是 define my consumer key define my consumer secret oa
  • 如何在 PHP 5.6 中通过 php.ini 设置“verify_peer_name=false”SSL 上下文选项

    案例 我想打开 SSL 连接localhost而 SSL 证书是 FQDN 的问题 问题 没有进行特殊处理就行 下面的程序失败并显示以下消息 PHP Warning stream socket enable crypto Peer cert
  • PHPUnit - 模拟 S3Client 无法正常工作

    库 aws aws sdk php 2 PHP 版本 PHP 5 4 24 cli 作曲家 json require php gt 5 3 1 aws aws sdk php 2 require dev phpunit phpunit 4
  • 如何从日期中查找该月的最后一天?

    如何在 PHP 中获取该月的最后一天 Given a date 2009 11 23 我要2009 11 30 并给出 a date 2009 12 23 我要2009年12月31日 t返回给定日期所在月份的天数 请参阅的文档date ht

随机推荐