繁体   English   中英

为什么当我使用PHP cURL时不需要避免SSL检查但可以请求HTTPS资源

[英]Why I do not need to avoid SSL check but can request HTTPS resource when I use PHP cURL

我在PHP中使用curl来请求一些https站点,例如https://github.com ,而我只使用如下代码:

<?php 
   $ch = curl_init(); 
   curl_setopt($ch, CURLOPT_URL, "https://github.com/search?q=react"); 
   curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
   $output = curl_exec($ch); 

   echo $output;

   curl_close($ch);      
?>

然后,我可以得到页面。

但是,我之前进行了搜索,发现如果请求https资源,则需要添加以下代码:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

那么,为什么我可以在没有这两行代码的情况下请求https资源来避免SSL检查?

谢谢。

两个Curl选项定义为:

CURLOPT_SSL_VERIFYPEER-验证对等方的SSL证书

CURLOPT_SSL_VERIFYHOST-针对主机验证证书的名称

它们在Curl中都默认为true ,除非有充分的理由,否则不应禁用它们。 通常仅在将请求发送到具有无效或自签名证书的服务器时才需要禁用它们,这通常只是开发中的问题。 任何面向公众的网站都应出示有效的证书,并且通过禁用这些选项,您可能会面临安全问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM