pip 和 easy_install 能安全地下载 Python 包吗?

pip 和 easy_install 能安全地下载 Python 包吗?

例如,他们是否检查数字签名(如 apt-get 和 Windows Update)或者是否要求他们使用 SSL?如果没有,我有点担心下载的软件包可能被木马病毒感染。

答案1

点数已经升级

SSL 证书验证

从 v1.3 开始,pip 通过 https 提供 SSL 证书验证,以防止针对 PyPI 下载的中间人攻击。

8.0 版还具有以下功能检查本地哈希值

答案2

并非所有 Python 软件包都托管在 pypi.python.org 上,但 easy_install 会在 PyPi 页面上查找下载链接。许多常见软件包(如 PIL 和 lxml)都使用自己的分发服务器(事实上,这通常会给软件包使用者带来问题)。示例:http://pypi.python.org/pypi/PIL/

pypi.python.org 本身似乎不提供任何类型的 HTTPS 支持。

如果您希望提供安全的 easy_install / pip 环境,我建议您将所需的包镜像到您自己维护 HTTPS 的服务器,然后使用--allow-hosts选项限制到该服务器的下载:

http://packages.python.org/distribute/easy_install.html#restricting-downloads-with-allow-hosts

答案3

如果可用,应将 MD5 信息添加到下载 URL 中,方法是附加格式为 #md5=... 的片段标识符,其中 ... 是 32 个字符的十六进制 MD5 摘要。EasyInstall 将验证下载文件的 MD5 摘要是否与给定值匹配。

http://packages.python.org/distribute/easy_install.html

看起来 easy_install 做了一些验证,但似乎仅有的检查软件包存储库是否提供 MD5 密钥。

未来的计划同一页面的部分进一步强调了这一点:

未来的计划:
- 签名检查?SSL?能否抑制 PyPI 搜索?

相关内容