目标:
维护 PHP 应用程序和 Coldfusion 应用程序之间的会话状态,它们一起构成了整个应用程序。
当前方法:
登录到我们的 Coldfusion 应用程序后(登录的唯一方式,即无法通过 PHP 应用程序登录),我们使用以下 JS 片段调用远程 PHP 文件,该文件设置 PHP 会话 cookie(无法通过 Coldfusion 设置) ,并在随后的 Coldfusion 页面访问中刷新 PHP 会话:
<script type="text/javascript">
// Create an image.
var imgPing = new Image();
// Set image src to App A ping url.
imgPing.src = "http://remotePHPApplicationURL/remoteFile.php";
</script>
登录时,此代码段会加载到每个 Coldfusion 页面上,以维护并行会话。
如果通过非 SSL Coldfusion 页面调用此方法,则该方法按设计工作,但是,有一些 SSL Coldfusion 页面包含该应用程序。当 SSL 页面调用此代码段时,我们会在 Chrome Inspector 中同时收到“不安全内容”警告(中断我们的 SSL 连接)和“匿名功能”错误。
我们已经尝试 CFHTTP 来“获取”这个 PHP 文件,但它没有按照设计设置 PHP cookie。关于如何使用 img.src 执行 PHP 文件与使用 CFHTTP 相比,我有一些不明白的地方。
问题:
是否有另一种更好的方法来调用/执行/ping PHP 文件与处理 img.src 似乎只在非 SSL 情况下有效?
以下是 PHP 文件的示例:
<?php
error_reporting(E_ALL & ~E_NOTICE);
define('THIS_SCRIPT', 'index');
define('CSRF_PROTECTION', true);
$globaltemplates = array();
require_once('./global.php');
$phpapp->session->save();
setcookie('userid', 'uid');
setcookie('password', 'pass');
header("Content-Type: image/png");
?>