API - 连接安全吗?

时间:2011-07-01 10:16:52

标签: php api

如何检查与REST API的连接是否安全?

1)我正在构建一个API,并希望在生成响应并返回给客户端之前确保连接正在运行SSL。用户名和密码在每个请求中传递

2)你怎么能用SSL建立fsockopen连接?

$this->url = 'api.domain.com';
$this->path = '/v1/json/account/user/pass/?id=123';

if($this->fp = fsockopen($this->url, $this->port, $errno, $errstr, $this->timeout)){
    $write = "$this->method $this->path HTTP/1.1\r\n";
    $write .= "Host: $this->url\r\n";
    $write .= "Content-Type: $this->content_type\r\n";
    $write .= "Connection: Close\r\n\r\n";

    fwrite($this->fp, $write);

    while($line = fgets($this->fp)){
        if($line !== false) $this->response .= $line;
    }

    fclose($this->fp);
}

2 个答案:

答案 0 :(得分:2)

只需检查$_SERVER['HTTPS']

http://php.net/manual/en/reserved.variables.server.php上的PHP手册说:

  

'HTTPS'

     

如果通过HTTPS协议查询脚本,则设置为非空值。

     

注意:请注意,当ISAPI与IIS一起使用时,如果未提出请求,则该值将关闭>通过HTTPS协议。

答案 1 :(得分:0)

当然可以。你甚至可以强迫它。 HTTP在端口80上工作,在443上使用HTTPS。您可以丢弃所有未从443传入的流量。