PHP 高危函数扫描脚本生成器

扫描 eval 等高危函数并输出分级报告

更新于 今天

适用场景

  • 接手上线前做一次代码体检
  • 漏洞通报后快速定位危险调用
  • 提交前把扫描接入本地钩子
PROMPT
【指令】
1. 写一个 Shell 脚本,批量扫描 PHP 项目里的高危函数与可疑写法,一次覆盖全部 PHP 文件。
2. 脚本直接输出可排序的评测报告,而不是一屏原始日志,报告要能按风险等级与路径排序。
3. 脚本要能在测试机一次跑完,不依赖分次执行,也不靠人工翻页确认结果。
4. 全程只读,中途不修改任何文件,不写入项目目录,也不创建临时中间文件。

【上下文】
1. 项目在 /www/ai363,PHP 8.2,代码走 Git 管理,扫描范围按仓库相对路径定位文件。
2. 扫描过程只读,禁止执行项目业务代码,不加载框架自动加载器,不引入任何运行时依赖。
3. 遇到二进制与压缩包直接跳过,不解压、不做字符串提取、不计入统计分母。
4. 结果按仓库相对路径输出,路径前缀统一,便于与 Git 里的文件一一对应。

【输入数据】
1. 扫描 app 与 public 两个目录,排除 vendor、runtime、.git 与 uploads 四处。
2. 重点匹配 eval、assert、system、shell_exec、passthru 五个函数,五个都要在规则里单列。
3. 另查 preg_replace 的 e 修饰符,以及变量函数调用这类以变量名拼出函数名的写法。
4. 命中行要带行号与前后各一行上下文,上下文按原文件行序原样输出,不改写不改缩写。

【输出要求】
1. 输出完整脚本与使用说明,说明写清参数表、报告输出位置与退出码含义。
2. 支持 dry-run 参数,只打印扫描范围与命中统计,不落盘任何报告文件。
3. 报告按文件路径与行号排序,同一文件内行号升序,跨文件按路径字典序。
4. 每行含风险等级、命中片段与修复建议,风险等级分高、中、低三档并给出判定依据。
5. 最后给三条人工复核优先级,写清先看哪类命中、后看哪类,以及跳过的例外情形。
标签
脚本 安全