소스 정보
- 저장소
- 0xShe/PHP-Code-Audit-Skill
- 최근 소스 활동
- 2026년 3월 24일 06:08
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 399
- 포크
- 40
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/0xShe/PHP-Code-Audit-Skill --skill php-route-mapper명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | php-route-mapper |
| description | PHP Web 源码路由与参数映射分析工具。从源码中提取所有入口路由与参数结构,输出完整请求模板与参数清单(禁止省略)。 |
分析 PHP Web 项目源码,提取完整的 HTTP 路由入口与请求参数结构,生成可用于安全测试的请求模板(Burp/Repeater 风格),并自动保存为 Markdown。
此技能必须输出所有发现的路由与接口,不允许省略:
用户提供:
source_path:PHP 项目源码根目录
可选:context_path:如果存在反向代理/网关前缀,可用于拼接完整路径(必须有证据来源){output_path}/
├── route_mapping/
│ ├── routes_{timestamp}.md
│ └── params_{timestamp}.md
└── quality/
└── route_mapper_validation_{timestamp}.md
路径与流水线合并模式下的对应关系见 shared/IO_PATH_CONVENTION.md(route_mapping/*.md 与报告内「路由/参数」章节等价)。
routes/web.php、routes/api.php、Route::get/post/{subpath}、Route::resource、Route group 前缀与中间件config/routes/*、PHP8 attribute #[Route({route_options})]、Annotation @Route({route_options})$app->get/post/any({handler})、自定义中间件admin-post.php/admin-ajax.php、add_action('admin_post_*')、add_action('wp_ajax_*')public/index.php)的分发逻辑、基于 $_SERVER['REQUEST_URI'] 的路由匹配{id} / (?P<id>{id_pattern}) / 正则路由:必须把可控参数列出来对每条路由输出以下参数来源与类型信息:
{id})$_GET / request()->query({query}) / 框架 query 解析结果php://input、$_POST、JSON json_decode({json})getallheaders()、$_SERVER[{value}]、框架 request header API$_COOKIE$_FILES(输出字段名与 filename 来源)每条路由必须给出处理器来源证据:
routes_{timestamp}.md:主索引(逐条列出)说明:本 skill 使用 routes_{timestamp}.md 中 === [N] {route_summary} === 的 N 作为 HTTP 路由的 route_id(流水线后续用于 route_tracer/{route_id}/trace_{timestamp}.md 文件分桶)。CLI / hook / sink-only 等合成 route_id 由 php-audit-pipeline 阶段 3 写入 high_risk_routes_{timestamp}.md,不占用本文件的 [N] 序号。
# {project_name} - 路由与接口索引(PHP)
生成时间: {timestamp}
分析路径: {source_path}
## 路由清单(全部)
=== [1] GET /path/to/{id} ===
HTTP 方法: GET
路由路径规则: /path/to/{id}
处理器: ControllerClass@method / functionName
位置: path/to/file.php:line(若无法获取行号,标注“待定位:需人工打开文件确认”但仍给出文件路径)
参数概览:
Path: id (类型推断/约束)
Query: {query_params}
=== [2] POST /path/to/{id}/action ===
HTTP 方法: POST
路由路径规则: /path/to/{id}/action
处理器: ControllerClass@action / functionName
位置: path/to/file.php:line(若无法获取行号,标注“待定位:需人工打开文件确认”但仍给出文件路径)
参数概览:
Path: id (类型推断/约束)
Query: {query_params}
params_{timestamp}.md:参数详细(逐条列出)# {project_name} - 路由参数结构(逐条)
生成时间: {timestamp}
=== 路由: GET /path/to/{id} ===
1) Path 参数
| 参数 | 类型/约束 | 位置 | 必填 |
|------|------------|------|------|
| id | int/regex{id_pattern} | Router rule | 是/否/不确定 |
2) Query 参数
| 参数 | 类型 | 来源 | 必填 | 说明 |
3) Body 参数(如 JSON)
| 字段 | 类型 | JSON 路径 | 必填 |
4) Header/ Cookie / File(如有)
| 字段 | 类型 | 来源 | 必填 |
5) 完整请求模板(必须在代码块里)
```http
GET /path/to/{id}?a={a}&b={b} HTTP/1.1
Host: {host}
Cookie: {cookie}
Authorization: Bearer {token}
Content-Type: application/json
{"k":"{v}"}
## 输出前自检(强制)
- [ ] routes 与 params 中每条路由“序号/路由标识”一致
- [ ] 没有出现省略占位符
- [ ] 每条路由都有“完整请求模板”代码块