openai/php2shell-checker
根据站点暴露的 PHP 版本头或本地安装,判断是否落在已知漏洞影响范围内。
解决什么问题
PHP 安全公告(比如 10 月 21 日这次)一发布,运维和审计人员最想先确认的就是:这台机器是不是已经打了补丁的版本。常规做法是登录服务器看 php -v,再对照公告里的版本区间人工判断;从外部检查时,只能看 X-Powered-By 头猜一猜。这个工具把这件事压缩成一条命令和一个可脚本判断的退出码,URL 和本地服务器两种场景都覆盖。
有什么不同
同类需求通常交给 Nikto、Nuclei 这类通用扫描器,或者自己写脚本匹配版本号。它们是通用且偏重的方案,而这个项目刻意做窄:只给版本判定。真正有区分度的有三点:结果只有 OK、POTENTIALLY VULNERABLE、UNKNOWN 三种状态,并且各自对应不同退出码,方便 CI 分支处理;上游修复版本写死在表里,PHP 5.4–8.1 这些分支不管补丁号多高都直接告警;以及它对自身局限非常坦白——不跟随重定向、不读响应正文、不发漏洞探测包,并且明确说明 OK 只描述“对外声明的版本”,不代表安装本身安全。另外它以两个 Codex skill(phpcheck-server、phpcheck-url)的形式分发,这是比较少见的打包方式。
适合谁
适合需要快速批量初筛大量主机的运维和安全工程师,也适合想在 CI 里加一道低成本卡点、发现站点声明了未修复 PHP 就失败的人。前提是你清楚基于响应头的判断只是线索,不是结论。不适合需要真正漏洞扫描、认证后检测或能识别发行版 backport 的团队——HTTP 头本身看不出这些,README 也直说了。只关心 PHP 之外的范围,应该去找成熟扫描器。
上手成本
直接运行需要 Node.js,或者一套 Codex 环境来装这两个 skill;README 只写了通过 skill installer 安装,独立运行路径是 node phpcheck.js "https://example.com"。规则表写死为这一份公告的修复版本(8.2.35、8.3.36、8.4.27、8.5.12),新公告出来后会过时,需要手动维护。协议是 Apache-2.0。OpenAI 声明不接受外部代码贡献,所以别指望自己提 PR 合进去,只能报 issue。成熟度基本为零:项目才三天。
点评
这是一个 2026-10-21 才创建、刚被追踪三天的新项目,新项目榜上日均约 +366 star,属于安全公告带起来的热度,不是已经沉淀下来的项目。README 对“别过度自信”讲得很清楚,这对一个只看响应头的检查来说是正确姿态;但写死的公告版本表意味着它是某个时间点的快照,而不是持续维护的扫描器。现在可以拿它做快速初筛或 CI 冒烟检查,任何重要的结论都要回到服务器上核实。不要把 OK 当成安全证明。
Hacker News 讨论
本文由 AI 根据项目 README 生成,更新于 2026年10月24日,以项目官方文档为准。