百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Python 包存储库 PyPI 收到美国司法部三张传票后,无奈决定:提供用户数据!

itomcoil 2025-03-19 13:36 14 浏览

整理 | 苏宓
出品 | CSDN(ID:CSDNnews)

用过 Python 的开发者,想必都听过 PyPI。它是 Python 官方软件存储库,为超过 700,000 名用户和超过 450,000 个项目提供服务。

近日,PyPI 对用户隐私保护引发了不少人的担忧。事情起因于 5 月 24 日,Python 软件基金会的基础设施总监 Ee Durbin 在官方博客上发布了一篇《PyPI was subpoenaed》的公告。

在公告中,Ee Durbin 称 Python 软件基金会(PSF)2023 年 3 月和 4 月收到了美国司法部发出来的三张传票,要求 PSF 提供关于 PyPI 用户数据。

PyPI 是一个可以上传 Python 包的平台,通过在 PyPI 上发布的包可以使用"pip install"命令进行安装。为了在 PyPI 上发布包,用户需要创建一个账户,而这次司法部发出的传票要求的就是与这些用户账户相关的信息。

然而,根据 PSF 的说法,他们并没有得到任何关于为何司法部要求用户数据的法律背景信息,但是司法部要求他们提供总共五名 PyPI 用户的数据。

PSF 公告写道,「保护 PyPI 用户的隐私对于 PSF 和 PyPI 管理员来说至关重要,我们致力于尽可能地保护用户数据不被披露。」

不过,在这种情况下,他们在咨询律师之后,最终决定履行数据提供的要求,并对此事进行了公开说明。

司法部要求 PSF 提供的数据如下,PSF 官方也对此进行了说明:

1. 姓名(包括订阅者姓名、用户名和昵称)

PSF 表示,“PyPI 在其数据库中有一个元素用户名,该名称是在其中注册的。用户可以更改显示名称,但不会记录 PyPI 的用户显示名称更改历史。”

2. 地址(包括邮寄地址、居住地址、工作地址和电子邮件地址)

PSF 回应道,由于 PyPI 不要求用户注册时填写邮寄或居住地址,因此仅存储用户的电子邮件地址”,仅将电子邮件地址提供给司法部。

3. 连接记录。

PyPI 在索引中保留项目的所有更改记录。这些记录存储在数据库中,并通过 XMLRPC API 发布,用户名和 IP 地址除外。此外,账户创建、电子邮件发送、电子邮件地址更改、登录、登录失败等用户事件的记录也被保留并可以从数据库中检索到。

4. 会话时间和持续时间记录,以及与这些会话相关的临时分配的网络地址(如Internet 协议地址)。

PyPI 提供 session 时间,即登录时间作为数据,但不记录 session 时长。

5. 服务时长(包括开始日期)和使用的服务类型。

PyPI 保留用户账号创建的日期和最后一次成功登录的记录。这些记录集存储在数据库中,是 PyPI 上的私有信息。

6. 电话或设备号码(包括注册 Internet 协议地址)。

每个用户的所有 IP 地址都是共享的。这些是从数据库记录中获取的,并且是 PyPI 私有的。

7. 支付方式和来源(包括任何信用卡或银行账户号码)和账单记录。

PyPI 不设置用户使用费,因此不存在信用卡支付记录或账单记录。

8. 与给定用户名相关的所有 Python 软件包索引(PyPI)上传的记录。

提供了与每个用户名关联的所有项目的列表。这些是从数据库记录中获取的,并且是 PyPI 私有的。

9. 与给定用户名相关的任何 Python 软件包索引(PyPI)上传的 IP 下载日志。

PyPI 不保存包含 IP 地址的包下载日志。下载日志会经过一个处理流程,其中包括由 CDN 报告的 GeoIP 信息,并从 Google BigQuery 公共数据集中获取。

其实,根据公告也不难看出,虽然 PSF 不愿,但是依然还是会将数据提供给司法部门,至于此举会不会引发更多用户对 PyPI 的不信任,以及会带来哪些影响,目前尚未可知。

公告全文详见:

https://blog.pypi.org/posts/2023-05-24-pypi-was-subpoenaed/

相关推荐

Python合集之Python字符串常用操作(一)

在上一节的合集中,我们了解了Python集合增删改及集合间运算的相关知识,本节我们将进一步了解一下Python字符串的常用操作的相关知识。1.拼接字符串使用+运算符可完成对多个字符串的拼接,+运...

Python 入门系列——17. tuple 简介

tupletuple常用来将多个item放在一个变量中,同时tuple也是python4个集合类型之一,其他的三个是:List,Set,Dictionary,它们都有自己的用途和场景。tupl...

Python基础 - 变量的作用域(python中变量由什么组成)

变量的作用域决定了变量在程序中的可见性和生命周期。在Python中,变量的作用域有以下几种:局部作用域(当前函数内部)嵌套作用域(外层函数)全局作用域(模块级别)内置作用域(Python的内置函数和内...

Python中冷门但非常好用的内置函数

Python中有许多内置函数,不像print、len那么广为人知,但它们的功能却异常强大,用好了可以大大提高代码效率,同时提升代码的简洁度,增强可阅读性Countercollections在pytho...

Python常用函数整理(python常用函数大全pdf)

以下是Python中常用函数整理,涵盖内置函数、标准库及常用操作,按类别分类并附带示例说明:一、基础内置函数print()输出内容到控制台。pythonprint("Hello,World!")#...

新手易犯错的地方Python作用域(python作用域和命名空间)

好多新手一开始比较容易犯错的地方理解作用域对于编写高效的python代码十分重要现在就讲下四种作用域,按照从内到外的顺序:局部作用域(Local)-在函数内部定义的变量嵌套作用域(Enclosin...

函数与模块:Python编程中的核心工具

一、函数的定义与核心概念1.1函数的定义函数是封装可重复执行代码的模块化单元,通过命名的方式组织代码逻辑,实现代码复用和功能解耦(将不同功能独立开来,减少代码之间的依赖关系)。其基本语法结构为:de...

太好用!教你几招Python魔法方法的妙用

专注Python、AI、大数据,请关注公众号七步编程!Python是一种简单的编程语言,满足一个需求,可以有各种各样的实现方法。正是因为它可以通过各种串联满足很多复杂的逻辑,因此,对代码可读性关注度不...

深入解析Python中的range()函数(python里面range函数)

range()是Python中一个非常基础且功能强大的内置函数,广泛用于循环控制和数字序列生成。它在迭代、索引处理和循环次数控制中扮演重要角色。本文将从基础用法到高级技巧,全面解析range()的使用...

站长在线python精讲在Python中使用len()函数计算字符串长度详解

欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python中使用len()函数计算字符串的长度详解》。本知识点主要内容有:在Python中使用len()函数计算字符串在UTF-8编...

linux工作中常用之必备基础命令(二)

1、clear命令功能说明:清屏。举例:clear;ctrl+l2、who命令功能说明:当前在本地系统上的所有用户的信息举例:whoami;who3、uptime命令功能说明:查询系统...

CentOS7装Ollama,本以为小菜一碟,没想到掉坑里了!

今天准备在CentOS7上安装Ollama,原本以为是小事一桩。哪想还是遇上了点小麻烦。因为在Windows上安装Ollama太小儿科了,上ollama.com网站下载程序,一键安装即可,最多就是设...

Linux下 sudo命令(linux里sudo怎么用)

平常使用Linux的时候,都是用普通用户登录执行命令,但是有些命令需要root权限才能执行,如果切换到root用户去执行,就需要输入root密码,为了系统的安全性,应该尽可能少的直接在终端上输入roo...

CentOS7.3 Linux系统中杀死进程的方法

CentOS7.3学习笔记总结(二十四)-Centoslinux系统中杀死进程的方法在工作中,我常常需要终止有问题的进程,一般通过程序的关闭命令把进程关闭掉,这是最安全的方法,但是有些时候,我们无法...

Linux(CentOs7)防火墙命令,两种使用方式示例

一、CentOs7关闭防火墙的命令1:查看防火状态systemctlstatusfirewalldserviceiptablesstatus2:暂时关闭防火墙systemctlstop...