php - 两个网站之间共享 session

标签 php session

您好,提前致谢...
我正在开发一个项目,我需要一些说明才能以高度安全的方式在两个站点之间共享数据。目前我正在使用 Form Post 来共享数据。但我考虑是否有一个选项可以从 site-2 获取 site-1 session 数据,因为我认为使用 session 更安全。我不知道如何在两个站点之间使用 session ,但我希望这里有人知道。

像这样:
站点 1 编码

$_SESSION['customer_id'] = 'XYZ';  
$_SESSION['total_amount'] = '100';  

<a href=https://site2.com/do.php?session_id=<?=$_SESSION['session_id']?>>Click Here</a>  

do.php 中的站点 2 代码

$session_id = $_REQUEST['session_id'];  
$shared_data = bla_bla_bla_function($session_id);  

$customer_id = $shared_data['customer_id'];  
$total_amount = $shared_data['total_amount'];  

或者除了表单发布之外,还有什么方法可以在两个网站之间进行安全数据共享,请告诉我。
谢谢
您的,
卡蒂凯扬 R

找到解决方案

我已通过 CURL 将客户 ID 和金额发送到第二个网站,为此在表中创建一条记录,并使用记录 ID 生成加密 ID,然后返回加密 ID。

因此,在第一个网站中,我获得了加密 ID,并将其用于 URL 重定向到第二个网站。

在具有加密 ID 的第二个网站上,我获得了客户 ID 和金额。

最佳答案

乌尔克。首先,永远、永远不要这样做:

$session_id = $_REQUEST['session_id'];  

这会导致安全漏洞,我们称之为“ session 固定”(了解更多:http://en.wikipedia.org/wiki/Session_fixation)。

看来您对安全性非常重视。如果您需要从站点 1 到站点 2 共享数据,您应该通过单个消费桥来完成:

1).单击站点 1 上指向处理程序文件的链接,我们将其命名为 redir.php。

2). Redir.php 首先检查现有的 session 数据。

3). Redir.php 将相关信息写入数据库行,以及某种标识符(例如,用户 ID + '_'+ 当前时间的 MD5 哈希值),以及设置为 false 的“已使用”标志。

4). Redir.php 执行 301 重定向到站点 2,以及标识符。

5).站点 2 从数据库中读取相关行。

6)。如果数据良好且尚未被“消费”,则返回成功并将数据标记为已消费。

7)。如果数据已被消耗,则抛出某种错误。

有更复杂的方法可以做到这一点,但我认为这可以处理您想要做的事情。

关于php - 两个网站之间共享 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47517566/

相关文章:

php - 检查可用房间的参数为房间类型、开始日期和结束日期

php - 对于具有 Cocoa 和 JS 客户端的 Web 服务来说,最简单的数据交换格式是什么?

php - htaccess 重定向基于存储在数据库中的 URL

ruby-on-rails - session 是 Rails 中的方法还是哈希?有点迷糊

session - NET Core 服务器端多 session Blazor

javascript - 从外部文件加载 div 内容

php - 运行while循环时的进度条

php - 状态信息丢失 : SImpleSAMLphp

javascript - 跟踪服务器上的站点访问 - Meteor 中未定义的 session 变量

.net - 在 ASP.NET MVC 中使用 HttpContext.Current.Session 测试一个类