我从这个线程知道禁用 CURLOPT_SSL_VERIFYHOST 时可能会发生哪些攻击。我想知道禁用 VERIFYPEER 而不是 _VERIFYHOST 时可能会发生哪些攻击。使用信用卡付款是否是可接受的风险?
(我问的原因是因为我的代码只能在禁用 _VERIFYPEER 的情况下工作,尽管似乎没有人知道为什么)
如果您禁用CURLOPT_SSL_VERIFYPEER
,curl 将不会检查证书是否实际由受信任的机构签署。这是非常危险的!在 MITM 情况下,如果没有VERIFYPEER
,攻击者可以简单地将他自己的“自签名”证书替换为真实证书,并且只要主机名匹配(他总是可以这样做,因为他正在制作证书),您的应用程序将接受。
您的代码可能会失败,因为您没有设置 CA 证书存储,并且您正在与之交谈的服务器由不在 curl 的默认存储库中的 CA 签名。考虑使用CURLOPT_CAINFO
或CURLOPT_CAPATH
指定要验证的证书,并确保您用于验证的证书可访问并与目标服务器的证书匹配。