Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在两个网站之间共享会话_Php_Session - Fatal编程技术网

Php 在两个网站之间共享会话

Php 在两个网站之间共享会话,php,session,Php,Session,嗨,提前谢谢… 我在一个项目上工作,我需要一些澄清,以高安全的方式在两个站点之间共享数据。目前我正在使用Form Post共享数据。但我考虑是否有从site-2获取site-1会话数据的选项,因为我认为使用会话更安全。我不知道如何在两个站点之间使用会话,但我希望这里的人会知道 像这样: 站点1编码 $_SESSION['customer_id'] = 'XYZ'; $_SESSION['total_amount'] = '100'; <a href=https://site2.c

嗨,提前谢谢…
我在一个项目上工作,我需要一些澄清,以高安全的方式在两个站点之间共享数据。目前我正在使用Form Post共享数据。但我考虑是否有从site-2获取site-1会话数据的选项,因为我认为使用会话更安全。我不知道如何在两个站点之间使用会话,但我希望这里的人会知道

像这样:
站点1编码

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

<a href=https://site2.com/do.php?session_id=<?=$_SESSION['session_id']?>>Click Here</a>  
$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'];  
或者除了form post之外,有没有其他方法可以在两个网站之间进行安全数据共享,请告诉我。
谢谢你
你的,
卡提基安R

找到解决方案

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

所以在第一个网站中,我得到了加密的ID,并将其用于第二个网站的URL重定向


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

您可以为这两个网站使用公共会话后端,例如,将会话存储在数据库中


要替换内置文件后端,可以使用函数Urk。首先,永远不要这样做:

$session_id = $_REQUEST['session_id'];  
这会导致我们称之为“会话固定”的安全卡车漏洞(请阅读更多信息:)

看来你对安全的要求很高。如果您需要从站点1到站点2共享数据,则应通过单个消费桥:

1) 。单击Site1上指向处理程序文件的链接,我们称之为redir.php

2) 。php首先检查现有的会话数据

3) 。php将相关信息连同某种标识符(例如,用户ID+''.'+当前时间的MD5散列)以及“已消费”标志set false写入DB行

4) 。php将301重定向到站点2以及标识符

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

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

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


有更复杂的方法可以做到这一点,但我认为这可以解决您试图做的事情。

尝试将共享敏感数据所需的所有内容都保存在一个地方。将会话存储在一个可以从两台服务器访问的数据库中。我会向上投票“Urk.首先,永远不要这样做:”,但随后我甚至会对建议投反对票。你知道他们不会读你的警告…啊,我道歉。我看不出那是他们的建议+为了警告你的建议,我加粗了“永远,永远”部分非常感谢你的回答。我在一个文档管理器上工作,文件可以托管在一个单独的服务器上,我不希望用户能够共享下载文件的链接,很好的回答:)为什么要使用isConsumed标志而不是仅仅删除行?@Gazillion-因为我几乎从不删除行。这是一个不好的习惯,尤其是当跟踪和报告突然变得重要时。。。你意识到你已经扔掉了3年的数据