适用场景
- 合并前的危险调用扫描
- CI流水线加规则校验
- 历史代码风险盘点
PROMPT
【指令】 1. 核心动作只有一个:写一个扫描脚本找出项目里的危险调用 2. 只输出脚本与命中报告,不改动被扫描的源码文件 3. 扫描对象限定为项目源码目录下的 PHP 文件 【上下文】 1. 项目为无框架老系统,代码里混用动态执行与拼接查询 2. 团队每周合并前跑一次扫描,命中即阻断合并 3. 规则需可维护,新增危险函数只改一处规则表 【输入数据】 1. 样本一:$sql = "select * from msg where id=" . $id; 2. 样本二:eval($code); 出现在模板渲染分支中 3. 样本三:call_user_func($fn, $arg); 出现在路由分发处 4. 样本四:unserialize($raw); 出现在缓存读取逻辑里 【输出要求】 1. 输出 Bash 脚本,遍历目录并打印文件名 行号与命中规则 2. 报告每行一条,依次为路径 行号 规则名 命中代码 3. 脚本支持传入目录参数,默认扫描当前项目源码目录 4. 命中风险按高中低分级,动态执行归为高风险