2011-07-13 64 views
8

嗨,在此先感谢...
我正在一个项目上工作,我需要一些说明以高安全的方式在两个站点之间共享数据。目前我正在使用Form Post来共享数据。但是我想,如果有一个选项可以从站点2获取站点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> 

网站2 do.php代码

$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']; 

或者是有没有办法做到两者之间的安全数据共享网站以外的其他网站,请告诉我。
谢谢
你的,
Kaartikeyan [R

找到解决方案

我必须通过CURL发送客户ID和金额的第二个网站,该表创建一个记录本,并生成加密ID与记录ID,并返回加密的ID。

所以在第一个网站我得到加密的ID,并使用它的URL重定向到第二个网站。

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

+2

尽量保持一切需要在一个地方共享敏感数据。 – Eddie

+0

将会话存储在可从服务器 –

回答

17

的的Urk内置的文件后端。首先,永远,永远做到这一点:

$session_id = $_REQUEST['session_id']; 

这会导致安全车洞,我们称之为“会话固定”(阅读更多:http://en.wikipedia.org/wiki/Session_fixation)。

看来你对安全性非常沉重。如果您需要将数据从站点1共享到站点2,则应通过单个使用桥接器执行此操作:

1)。点击站点1上的链接处理文件,我们称之为redir.php。 2)。 Redir.php首先检查现有的会话数据。 3)。 Redir.php将相关信息写入数据库行,以及某种标识符(例如,用户标识+'_'+当前时间的MD5哈希)以及'消费'标志,并设置为false。 4)。 Redir.php会将301重定向到站点2以及标识符。 5)。站点2从DB中读取相关的行。 6)。如果数据良好并且尚未“消耗”,则返回成功并将数据标记为已消耗。 7)。如果数据已被使用,请抛出某种错误。

这样做有更复杂的方法,但我认为这处理你正在尝试做的事情。

+0

我会赞成“Urk。First off,never do this:”,但之后我不得不为此付诸表决。你知道他们不会读你的警告... – adlawson

+0

@adlawson - 我建议什么?我引用他的代码。 –

+0

啊,我很抱歉。我没有看到那是他们的建议。 +1的警告 – adlawson