如何检查与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);
}
答案 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传入的流量。