0

以下に示すように、あるサーバーから別のサーバーに$ data(配列)を送信しました。2番目のサーバーに到達すると、$data要素は明らかにurlencodedされます。2番目のサーバーでは、exec()で$dataの一部を使用したいと思います。ハッシュを渡して、もう一方の端で有効であることを確認しましたが、必要に応じて、escapeshellarg()を使用したいと思います。$ data要素はすでにurlencodedされているので、escapeshellarg()をどのように適用すればよいですか?ありがとう

curl_setopt($ch,CURLOPT_POSTFIELDS,flatten_GP_array($data));

function flatten_GP_array(array $var,$prefix = false)
{
    //Used for CURL routines when sending multi-dimential array
    $return = array();
    foreach($var as $idx => $value){
        if(is_scalar($value)){
            if($prefix){$return[$prefix.'['.$idx.']'] = urlencode($value);}
            else {$return[$idx] = urlencode($value);}
        }
        else {$return = array_merge($return,library::flatten_GP_array($value,$prefix ? $prefix.'['.$idx.']' : $idx));}
    }
    return $return;
}
4

1 に答える 1

0

ホストとサーバーだけが知っている非常に長い暗号化キーを使用してデータを暗号化することをお勧めします。

John Condeのこの暗号化/復号化クラス(StackOverflow)を使用できます。

簡単にするために、$dataアレイをシリアル化し、暗号化してサーバーに送信します。

$urlData = Encryption::encrypt(serialize($data));
curl_setopt($ch,CURLOPT_POSTFIELDS,array('data' => $urlData));

FAXサーバーの側で、データを復号化して再度シリアル化を解除するだけです

$data = unserialize(Encryption::decrypt($dataParameterFromUrl));

サーバー側では、クライアントにあるデータとまったく同じデータがあり、それを使ってやりたいことが何でもできます。

さらに、チャレンジレスポンスのようなものを使用して、ホストを確認できます。

于 2013-01-11T16:15:02.220 に答える