>백엔드 개발 >PHP 튜토리얼 >两个网站之间,如何通讯比较安全?

两个网站之间,如何通讯比较安全?

WBOY
WBOY원래의
2016-06-06 20:47:111048검색

比如,我有一个网站,网址是 aaa.com
在这个网站上购买了产品,生成了一个订单。
但是支付的时候,必须跳转到我原有的支付中心(域名 bbb.com)上去支付!!
这样,怎么通讯还安全点?
我想到的就是 URL 之间的跳转,然后参数加密,或者用 auth? 还是 service ?

回复内容:

比如,我有一个网站,网址是 aaa.com
在这个网站上购买了产品,生成了一个订单。
但是支付的时候,必须跳转到我原有的支付中心(域名 bbb.com)上去支付!!
这样,怎么通讯还安全点?
我想到的就是 URL 之间的跳转,然后参数加密,或者用 auth? 还是 service ?

方案很多。

1.签名 sign
双方约定秘钥,URL参数按照一定规则签名,B点验证签名即可

<code class="lang-php">// 双方约定的密钥
$security_key = 'xxxxxx';

// A点生成签名和URL
$url = array();
$url['order_id'] = '订单编号';
$url['other_params'] = '其他参数';

// 排序
ksort($url);
// 生成签名
$url['sign'] = md5($security_key.urldecode(http_build_query($url)));

// 生成URL
$url = 'http://b.com/pay.php?'.http_build_query($url);
// 走去支付
Header("Location: {$url}");
</code>

2.预处理 prepare
A点生成订单,A服务器curl访问B服务器传递订单信息(服务器与服务器通信,安全方面可以验证服务器IP),返回Token,然后A点跳转到http://b.com/pay.php?token={B点返回的Token值}

方案很多,看自己适合哪个

根据题目的意思,A服务器和B服务器是相对独立两个系统,统一的会话管理这个思路已经被封死了,是吧。

如果是两台独立的服务器可以参考"支付网关"的方式(各种回调之类的)。各种加密,各种HTTPS。
你还可以共用一个数据中心。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.