我从this thread知道当CURLOPT_SSL_VERIFYHOST被禁用时可能发生的攻击。我想知道在禁用VERIFYPEER而非_VERIFYHOST时可能发生的攻击。使用信用卡付款是否可以接受?
(我问的原因是因为我的code只能禁用_VERIFYPEER,但似乎没有人知道原因)
答案 0 :(得分:5)
如果禁用CURLOPT_SSL_VERIFYPEER
,curl将不会检查证书是否由受信任的机构实际签名。 这非常危险!在没有VERIFYPEER
的MITM情况下,攻击者只需将自己的“自签名”证书替换为真实证书,并且只要主机名匹配(他可以随时做,因为他正在制作证书),你的应用程序会接受它。
您的代码可能会失败,因为您没有设置CA证书存储区,并且您正在与之通信的服务器由CA签署,而不是在curl的默认存储库中。请考虑使用CURLOPT_CAINFO
或CURLOPT_CAPATH
指定要验证的证书,并确保您可以访问用于验证的证书并与目标服务器的证书相匹配。