检查项参考
检查项
使用 spip install 时,secpipw 会围绕解析后的安装计划和安装产物运行这些检查。
typo-suspect
MEDIUM / LOW
在 pip 解析出安装计划后,检测包名是否像热门包的假拼写错误。非热门的已解析包名会和本地热门包列表比较。
例如 requsets 对 requests、panda
对 pandas,以及 sixth 对 six。
direct-url
MEDIUM
当安装目标或已解析依赖使用 direct URL、VCS URL,或 PEP 508 direct reference,而不是普通 registry 包引用时报警。
recent-release
MEDIUM / LOW
当选中的 PyPI release 发布时间非常近时报警。发布时间小于 8 小时是 MEDIUM;小于 48 小时是 LOW。
empty-description
LOW
当选中的 PyPI release 元数据里 summary 和 long description 都为空时报警。
yanked-release
MEDIUM
当 pip 解析出的版本已经被标记为 yanked 时报警。这个检查使用 pip 解析后的安装报告,不会增加额外的 registry 元数据请求。
archive-hash
HIGH
当 PyPI release 元数据已经可用时,比较解析出的 wheel 或 sdist hash 与 PyPI 元数据中的 digest。如果不一致,会发出 HIGH 警告。
suspicious-url
LOW
当 PyPI 元数据指向短链接、裸 IP、嵌入凭据,或类似的可疑 URL 模式时报警。
repository-mismatch
LOW
当 PyPI 元数据指向 GitHub 或 GitLab 仓库,但仓库名看起来和包名无关时报警。
email-domain-drift
LOW
当包维护者邮箱域名和 secpipw 本地历史缓存中记录的域名相比发生变化时报警。
zero-version
LOW
当选中的包版本是 0.0 或 0.0.0 时报警。
suspicious-pth
MEDIUM
检测新增或被修改的 .pth 文件中是否存在以 import
开头的可执行行。报警后会询问是否删除可疑的已安装 .pth 文件。
artifact-history
MEDIUM / LOW
在一次 spip install 成功后,为已安装包记录本地安装产物 baseline。之后再次安装同名包时,如果已安装
.pth 文件新增、删除或内容变化,就会报警。
.pth 文件变化是 MEDIUM。entry-point 元数据或生成的脚本文件名新增、删除是
LOW。脚本文件内容不会比较,因为生成的 wrapper 在不同环境里可能不同。