测试岗位面试题更新 2026-08-05

在使用 Python 的 Requests 库发起 HTTPS 请求时,证书验证的正确处理方式是什么?请说明不同情况下的处理策略。

测试安全意识技术原理方案权衡Python

考察说明

考查对 Requests 库 HTTPS 证书验证机制的理解及不同场景下的处理能力。

回答思路

  1. 【回答框架 1】Requests 默认启用证书验证,通过 verify 参数控制。verify=True 时使用 CA 证书验证服务端证书,失败则抛 SSLError。
  2. 【回答框架 2】verify 可设为 False 跳过验证,但会带来中间人攻击风险,仅建议在测试或信任环境下使用,并配合 urllib3 的禁用警告。
  3. 【回答框架 3】可将 verify 设为 CA 证书文件路径或目录,用于自签名证书或私有 CA 场景。
  4. 【回答框架 4】客户端证书通过 cert 参数指定,格式为包含 cert 和 key 的文件路径元组。
  5. 【回答框架 5】生产环境应始终启用验证,并维护可信 CA 列表,避免因证书问题导致安全漏洞。
  6. 【关键点 1】verify 参数控制证书验证,默认 True。
  7. 【关键点 2】verify=False 跳过验证,但存在安全风险。
  8. 【关键点 3】自签名证书可通过指定 CA 文件或目录实现验证。
  9. 【关键点 4】客户端证书使用 cert 参数提供。
  10. 【关键点 5】生产环境必须开启验证。
  11. 【易错点 1】直接设置 verify=False 可能导致中间人攻击。
  12. 【易错点 2】忽略证书警告可能掩盖真实的安全问题。
  13. 【易错点 3】错误地将客户端证书与 CA 验证混淆。