返回资讯中心
外部精选
软件工程
#社区热议

PyPI 新版项目页面上线,强化安全信号展示

来源标题:PyPI's redesigned project pages with clearer security signals are now live

PyPI 重新设计的项目页面已正式上线,重点改进安全信号的呈现方式。新版界面与 Kabu Creative 合作,按照 OpenSSF Attestations Style Guide 的建议,更清晰地展示数字证明(digital attestations)等来源信息。PyPI 团队希望借此帮助用户更好评估包的安全性。

Hacker Newsrbanffy2026/11/14 · 今天16 分钟阅读

以下正文由 AI 翻译自 Hacker News(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

今年7月,我们宣布了一系列 PyPI 用户界面的更新计划。这些更新基于对 Python 社区成员的用户研究,旨在改进我们展示安全信号和包详情的方式。我们很高兴地告诉大家,这项工作已经完成并上线 PyPI。

随着 Python 生态系统的快速增长,PyPI 已成为恶意行为者越来越觊觎的目标。为此,PyPI 团队推出了许多安全功能,同时更积极地帮助 PyPI 用户评估和理解包的安全性。2024 年引入的数字认证(Digital attestations)就是这项努力的一个例子,它提供了发布文件来源(来自哪里)的可验证记录。然而,来源和认证对许多 PyPI 用户来说仍是陌生的概念,而 PyPI 的界面在传达它们的含义、重要性和局限性方面做得远远不够。

为了解决这个问题,PyPI 与 Kabu Creative 合作,在 PyPI 界面中引入更清晰的安全信号,落实 OpenSSF Attestations Style Guide 中提出的建议。下面来看看有哪些变化、对你意味着什么,以及你可以采取哪些行动。

新的安全标签页会传达发布文件的来源状态,并显示每个文件的认证信息,为你提供一个专门的地方来验证发布文件的来源。

PyPI 通过检查每个发布文件是否有认证来计算该发布的来源状态。通常,一个发布处于以下两种状态之一:

这意味着 100% 的发布文件都有认证,携带以下一种或两种受支持的认证类型:

PyPI Publish 认证确认文件由 PyPI Trusted Publisher 发布:

SLSA Build Provenance 认证将文件链接回其确切的源代码提交、构建平台和构建指令:

你可以直接在界面中查看认证元数据,或点击透明度日志链接获取更多信息。

“无来源”仅仅意味着该发布中没有任何文件带有认证。这通常出现在较旧的发布或尚未配置 Trusted Publishing 的项目中。无来源并不一定表示某个发布或发布文件是恶意的;它只是意味着文件来源无法通过密码学方式验证。当没有来源信息时,你应依赖周边的信任信号来评估安全性,例如维护者的历史记录、发布模式和仓库活动。如果你是包的维护者,考虑在下次发布时使用能生成认证的 Trusted Publishing 发布者。

来源警告旨在帮助你识别文件可能并非来自项目维护者的情况,例如攻击者接管了账户或发布工作流。当来源元数据看起来异常或与项目历史相冲突时,PyPI 会显示醒目的警告。许多警告都有合理的解释,但每一个都值得在安装前核实。

这意味着部分文件带有认证,而另一些没有(例如,wheel 通过 Trusted Publishing 发布,但源码 tarball 是使用 API token 上传的)。如果看到此警告,请谨慎行事。在安装前查看发布说明中是否有构建问题,或在项目的问题跟踪器中询问。

此警告表示同一发布中的文件来自不同的构建系统或源代码仓库。检查认证元数据,确认所有文件是否都来自维护者控制的来源。

此警告告诉你,发布文件的来源仓库或工作流与之前的发布不同。虽然这通常是合法的(例如组织改名或仓库迁移),但也可能表明流水线被入侵或账户被接管。如果看到此警告,请查看项目发布说明或官方渠道,确认是否有计划中的基础设施迁移。

这意味着之前使用认证发布的项目已改为上传不带认证的发布文件。检查维护者是否有意更改了发布流程,例如切换回 API token,或更改了发布配置使其不再生成认证。如果这出乎意料,请在核实之前对该发布保持怀疑态度。

要了解更多关于来源和认证(包括来源警告)的信息,请参阅我们的用户文档。

为支持这些变更,项目详情页也已更新:

重新设计的发布文件标签页可帮助你通过搜索和筛选长列表来找到正确的文件。你还可以在表格中查看每个文件的来源状态,并快速识别延迟文件,这些文件用橙色警告图标标记。当一个或多个文件在初始发布时间戳之后超过 14 天才上传时,会显示延迟文件警告。这些警告仅出现在 2026 年 7 月之前的发布上,此后引入了拒绝 14 天后新文件上传的策略。

发布历史标签页现在也提供每次发布的更多详情,展示文件数量、来源状态和发布状态(即隔离、撤回、归档或预发布)。

除了界面更新,PyPI 的用户文档也已扩展,帮助你更好地了解包安全性。阅读我们的包安全指南,了解:

新的安全标签页为 PyPI 提供了一个专门展示未来认证类型和安全通知的位置。为了帮助更广泛的开源生态系统从这项工作中受益,我们还在 OpenSSF Attestations Style Guide 中发布了一份案例研究,详细介绍了该项目期间开发的设计模式和警告。

(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →