2016-05-06 4 views
1

オリジナルのソースがないので、私は変更できない暗号化された(ioncube)PHPファイルがあります。私はものをするためにそのファイルを実行する必要があります。入力はXMLタイプの後要求です。PHPが暗号化されたphpファイル(ioncube)に入力を渡しています

私は出力をキャッチする

ob_start(); 
include("encoded.php"); 
$output = ob_get_contents(); 
ob_end_clean(); 

を使用することができますが、私は、入力XMLを操作する方法がわかりません。

私は現在、このコードは、いくつかの接続のために正常に動作しますが、(100と500の間)、ユーザが大量にこのコードを呼び出そうとした場合に

private static function post($xml) 
{ 
    $ch = curl_init(); 

    curl_setopt_array($ch, array(
     CURLOPT_URL    => self::$site, 
     CURLOPT_PORT   => 443, 
     CURLOPT_HTTPHEADER  => array(
            "Content-type: text/xml", 
            "Content-length: ".strlen($xml), 
            "Connection: close"), 
     CURLOPT_POSTFIELDS  => $xml, 
     CURLOPT_POST   => true, 
     CURLOPT_RETURNTRANSFER => true, 
     CURLOPT_HTTPAUTH  => CURLAUTH_BASIC, 
     CURLOPT_TIMEOUT   => 10, 
     CURLOPT_SSL_VERIFYPEER => 0, 
     CURLOPT_SSL_VERIFYHOST => 0, 
     CURLOPT_FORBID_REUSE => 0, 
     CURLOPT_FRESH_CONNECT => 1 
    )); 

    $data = curl_exec($ch); 

    if (curl_errno($ch)) 
     $data = "ERROR:".curl_errno($ch); 

    curl_close($ch); 

    return $data; 
} 

localhostのポストを行うにはCURLを使用しています暗号化されたphpがwierdデータを返し始めます(空または非XML戻り)。

問題は次のとおりです。ob_startの使用中にphp://入力ストリームを偽装するにはどうすればよいですか?またはそれを解読せずにioncube PHPファイルを呼び出すための他のソリューションですか?

+0

あなたは100から500を模倣するために探しています同時ユーザーリクエスト? – MonkeyZeus

+0

@MonkeyZeusあなたが1つのファイルへの500のリクエストをシミュレートすることを意味するならば、私の答えはいいえ、私はすでに多くのトラフィックを持っている、私はイオンキューブをロードする方法を探しています。私が今使っているカールは資源にやさしいものではなく、何度も失敗するので、コードに直接アクセスすることができないので、私は他の選択肢がありません。 – BlackSun

+0

私の答えは、私の回答を見てください。 – MonkeyZeus

答えて

0

あなたはこのようなincludeファイルを経由してioncubeファイルを呼び出すので:あなたは単にあなたがこのように必要なすべての$_POSTデータを強制することができ

ob_start(); 
include("encoded.php"); 
$output = ob_get_contents(); 
ob_end_clean(); 

ob_start(); 
$_POST['some_key1'] = 'some_value1'; 
$_POST['some_key2'] = 'some_value2'; 
include("encoded.php"); 
$output = ob_get_contents(); 
ob_end_clean(); 
+0

私は、暗号化されたphpファイルを、$ _POSTをログファイルに書き込んで、どの$ _POSTを上書きする必要があるかを確認するが、$ _POSTは空であるが、php://入力には入力XML、どのように "上書きする" php://入力ストリーム? $ _POSTをファイルに書き込むにはこのコードを使用してください: 'file_put_contents(" test.log "、print_r($ _ POST、true)、FILE_APPEND);' – BlackSun

関連する問題