将 CURLOPT_SSL_VERIFYPEER 设置为 FALSE 是否安全?即使你控制两个服务器?

Is it ever safe to set CURLOPT_SSL_VERIFYPEER to FALSE? Even if you control both servers?

我有一个内部 API,共享主机上的应用 运行 通过 HTTPS 从专用服务器获取半敏感数据。我在专用服务器上有证书,共享主机上的应用程序通过 https 进行 API 调用。

如果您在网络浏览器上测试 SSL 连接,证书工作正常,但 PHP 中的 CURL 给我带来了一些麻烦。我已将 CURLOPT_SSL_VERIFYPEER 设置为 false 以清除问题以进行测试。

将此设置保留为 false 是否安全,因为我控制两端的流量?事实上,我什至需要 SSL 证书吗?只要它通过 HTTPS,它就是安全的,对吗?

我有被中间人攻击的危险吗?

Is it safe to leave this set to false, because I control the traffic on both ends? In fact, do I even need an SSL cert? As long as it goes over HTTPS it's secure, right?

没有。只有当你不仅控制两端而且控制两者之间的一切时,你才是安全的。如果您在两台计算机之间使用一根电缆并控制两台计算机,那么您可能是安全的。如果有任何可能被其他人访问的电缆、路由器等,您就不再安全了。

Am I in danger of a man-in-the-middle attack?

是的,除非你能控制中间的一切,否则你无法阻止中间人。除非您验证证书,否则您既无法检测也无法阻止攻击。