借助此插图,如何实现服务器到服务器的数据

我在本地PC上设置了两个虚拟主机,第一个域是http://dev.local,另一个域处理api请求http://api.server.local/。这个想法很简单,但是不确定如何实现这种设置。所以这是实际过程。dev.local将发送一些重要的参数和值,API服务器首先将其读取并验证从dev.local发送的数据。

例如,我有从API服务器提供的API密钥,并且与只能使用该API的域一起存储在数据库中。因此,最重要的是,我想确保只有dev.local可以执行请求。这是一些例证。

http://img3.mukewang.com/6094a3670001bd2806200720.jpg

我已经尝试过cURL函数,但是由于某些原因,只要拥有api键的副本,任何人都可以访问该数据。因此,我想确保请求的来源或请求的来源。


这是我对dev.local拥有的脚本,用于访问api.server.local


 <?php


 $__apiServer    = 'http://api.server.local';

 $__apiVersion   = '1.0';

 $__apikey       = '7c4a8d09ca3762af61e59520943dc26494f8941b'; // API Key

 $__apiEmail     = 'johnsmith99@gmail.com'; // Registered Email Address

 $__apiUser      = 'johnsmith'; // Username


 $__curlURL      = "";

 $__curlURL      = "{$__curlURL}{$__apiServer}/v{$__apiVersion}";

 $__curlURL      = "{$__curlURL}/bin.php?user={$__apiUser}";

 $__curlURL      = "{$__curlURL}&email={$__apiEmail}";

 $__curlURL      = "{$__curlURL}&key=$__apikey";

 $__curlURL      = "{$__curlURL}&domain=$_SERVER[SERVER_NAME]";


 $ch = curl_init();


 curl_setopt($ch, CURLOPT_URL, $__curlURL);

 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

 curl_setopt($ch, CURLOPT_TIMEOUT, 30);         


 if(curl_exec($ch) === FALSE) {


      echo "Failed to load resource files from the API Server: $__apiServer";


 } else {


     $__curlURL = curl_exec($ch);


      if($err != 1){


         eval(' ?>' . $__curlURL);


      }

 }


 curl_close($ch);

我希望只有在所需数据有效的情况下才能返回该值。目前,可以按预期方式读取输出,但是只要拥有api密钥和其他凭据的副本,任何人都可以访问。


莫回无
浏览 178回答 1
1回答

扬帆大鱼

我知道了。我使用了cURL POST方法,它比使用GET更安全。并解析数组变量以验证主要参数。
打开App,查看更多内容
随时随地看视频慕课网APP