libcurl库 curl_setopt函数 CURLOPT_SSL_VERIFYHOST参数分析

最近使用C++ libcurl库,能够构建一个HTTP请求以及其他协议请求。对curl_setopt函数进行一些知识总结以免忘记。

CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...);

三个点号代表后面还有未知个参数,这个和printf函数是一样的,可以去网上查查看这个。

  1. 第一个参数:使用curl_init函数创建出来的对象。
  2. 第二个参数:属性。有很多种。
  3. 第三个参数:如果有,可能是属性的值,比如一些true或false,或者数字。

现在主要讲 CURLOPT_SSL_VERIFYHOST 选项,在libcurl早期版本中,这个参数的值,也就是第三个参数是bool型,后来又出现检查CN字段(SSL/TLS)中出现的。 在之后版本中,这个值就已经不够用了,而开发者也经常因为之前使用这个函数设置为True或False(之前死两个值)而出错(现在是三个值)。

0	:不检查证书
1	:检查证书不检查域名
2	:既检查证书又检查域名

曾经做过HTTPS请求分析,对这个三个状态还是比较熟悉,我来解释一下。

首先不检查证书,一些网站虽然在HTTP协议上加入了SSL和TLS加密,对服务器和客户端做中间人攻击,发现服务器端根本不会检查证书,也就是它空有一个加密协议,而没有校验你的证书;

下一步就是检查证书,而没有检查域名,也就是说你可以随意用一个假的证书,就能骗过服务器,与你中间程序交互,这种也不太可靠,随便用一些工具生成证书就能蒙混过关;

最后一种是既检查证书,又能要检测域名,第二种是空有一个证书的,是没有host域名的,而且这个域名是服务器相对应的,即使是一个合格证书,有一个域名,和服务器对不上,还是没有作用,欺骗不了服务器。

所以在做中间人攻击的时候,空有一个证书是吓唬不了人的,大家应该有信心,帮助互联网公司完成标准化,哈哈哈…

回到这个主题,新版本已经废除了为1的选项,现在只存在0或2的选值。(默认是2)

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值