1

SSL で保護する中央の Web サイト (A) があります。

他のクライアント サイト (B、C、D、E など) は、このサイト A に接続します。

要件は、サイト B (または C、D、E.....) からサイト A に HTTPS POST 要求を送信することです。

リクエストには次のパラメータがあります

WEBSITEKEY=keyvalue;

次に、サイト A はこの要求に応答する必要があります。

応答には、次のように必須の 1 つのパラメーターが必要です。

SECUREKEY=key-value-secure;
Para1=para1value;
Para2=para2value;
Para3=para3value;
Para4=para4value;

この応答部分を PHP で実装するにはどうすればよいですか? SSL POST と応答は初めてです。

後で編集、

私たちは常にリクエストを送信し、応答を受け取ります。ここで、クライアント要求に対する応答を提供する/応答を作成する必要があります。PHPでこれを行うにはどうすればよいですか? 次のコードを見つけました..

<?php
//process the request by fetching the info
$headers = http_get_request_headers();
$result = http_get_request_body();
//do stuff with the $headers and $result variables....
//then send your response
HttpResponse::status(200);
HttpResponse::setContentType('text/xml');
HttpResponse::setHeader('From', 'Lymber');
HttpResponse::setData('<?xml version="1.0"?><note>Thank you for posting your data! We    love php!</note>');
HttpResponse::send();
?>    

SSL 対応サイトから通常のサイトに応答を送信するのは正しいですか?

4

1 に答える 1

4

SSL の部分は重要ではありません。これは Web サーバーによって処理され、PHP は通常どおり要求を受け取ります。

必要なのは、リクエストを作成することだけです。そのためには、このリクエストのフォーマットを知る必要があります。また、特別な MIME タイプが必要かどうかなども必要です。

たとえば、答えが JSON でなければならないとしましょう。次に、次のようにする必要があります。

<?php
    if (!isset($_POST['WEBSITEKEY'])) {
         // Handle error. E.g.
         Header("HTTP/1.1 400 Bad Request");
         die();
    }

    $websitekey = $_POST['WEBSITEKEY'];

    require 'yourcode.php';

    $response = array(
        'SECUREKEY' => md5($secret . $websitekey),
        'para1'     => date('Y-m-d H:i:s'),
        'para2'     => 'Hello world',
    );
    // Specifying charset isn't strictly necessary but may be useful.
    Header("Content-Type: application/json;charset=UTF-8");
    $data = json_encode($response);
    $len  = strlen($data);
    // Some browser/proxy/load balancer may get better performance if the
    // length is known beforehand. This also disables Chunked-Encoding, which
    // in some scenarios may give problems.
    Header("Content-Length: {$len}");
    die($data); // Ensure no more output after this..

何をすべきかは$websitekey、アプリケーションロジックに完全に依存します。ここでは、秘密のソルト文字列に連結され、応答を構築するために使用されSECUREKEYますが、基本的にはやりたいことは何でもできます。

于 2012-10-11T17:55:18.287 に答える