| 关键词: 中间人 证书 verify Requests 时候 文件夹 路径 文件 写法 程序 |
背景 当我们在做开发的时候,很多时候都需要抓取我们收发的数据包,比如android开发的时候,我会在本地打开fiddler,查看app的所有http请求;有的时候为了调试方便,还会修改hosts文件,将某一域名指向特定的IP……在前面两个例子中,其实是中间人攻击(man in the middle attack,简称MITM)两种常用手段,第一种是代理劫持,第二种是DNS劫持,随着网络技术的发展,还出现了很多其它的中间人攻击手段。 普通程序员的写法 ![]() 程序运行良好,完美地实现了所需要的功能,不是吗? QA有话说 是的,程序运行得没错?可是代码中有两处安全问题,一是将 verify 设置为 False,使Requests 忽略了对 SSL 证书的验证;二是隐藏了urllib3抛出的证书校验失败的警告。这样做的后果是极有可能被中间人攻击,会话的安全性得不到保障。如果有中间人对通信过程中的数据进行了嗅探和篡改,你的程序却会毫不知情。虽然在开发阶段由于条件限制不能正确配置证书,也不能忽略警告,也不能忽略证书校验。 高级程序员的写法
requests.get('https://github.com', verify='/path/to/certfile')
s = requests.Session()
|
| 本文出处: https://www.toutiao.com/a6706510175496307211/ |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|