gpt4 book ai didi

python - Python InsecureRequestWarning 的真正含义是什么?

转载 作者:太空狗 更新时间:2023-10-30 02:30:13 25 4
gpt4 key购买 nike

我收到警告:

/.../local/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py:734: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html
InsecureRequestWarning)

我正在阅读 the doc .

如果我知道自己在做什么,我会看到很多关于如何禁用它的帖子,比如 this one .

但我仍然无法弄清楚错误的含义。我知道这意味着我缺少证书(因为它只发生在我的 VPS 上,而不是在我运行相同版本脚本的 Mac 上),但我不明白为什么我需要证书才能制作对第三方 API 的安全请求

非常感谢提供有用的摘要(或只是正确方向上的一点),以便我决定是否禁用它。我的直觉是我不应该禁用它,所以我想弄清楚如何正确解决这个问题。

最佳答案

很高兴您没有简单地禁用警告。实际上,这是个好问题!这里需要的是对“信任链” 的工作原理有基本的了解。这并不可耻,许多人对此一无所知。但是,作为开发人员应该了解基础知识!继续,也许可以阅读了解整个过程的工作原理。

简而言之,TLS 旨在保证保密性、真实性和完整性。安全社区的常识是 (*):如果没有证书验证,您将NONE这三项,因为您很容易受到中间人攻击。也就是说,验证证书,或者您也可以停止使用 HTTPS。这就是警告的内容。

更多上下文:此安全架构的一部分是远程主机声称拥有证书由信任链中更高的人签署,所以-称为 certificate authority (加利福尼亚州)。客户端需要验证该 CA 确实签署了相关证书。为了进行此验证,客户端需要一个包含许多 CA 公钥的本地数据库(将这些视为“信任 anchor ”,其集合可称为“证书包”)。

I don't understand why I need a certificate to make a secure request to a third-party API

请阅读其他地方的详细信息。但是,为了这个答案的完整性,这是一个高级抽象,应该阐明为什么需要一些外部信息源:

  • 您的客户端不信任远程端。
  • 因此,您的客户需要让第三方参与并询问远程端的可信度。
  • 该第三方是您本地的许多 CA 公钥数据库,即所谓的“证书包”。

您可以使用 requests库而不是 urllib3,它默认执行证书验证(并提供自己的 CA 数据库)。

(*) 未经验证的 HTTPS 连接可以比纯 HTTP“更好”,但这需要根据具体情况进行评估。

关于python - Python InsecureRequestWarning 的真正含义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28411546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com