Token导航 LogoToken导航

Agent Skill · 开发

php-logging-audit(PHP logging 审核)

用于辅助安全审计、权限检查、凭据风险、认证流程和常见漏洞排查。它适合让 Agent 梳理敏感配置、检查依赖风险、分析鉴权逻辑或生成安全复核清单。使用时不能把工具输出直接当最终结论,涉及密钥、令牌、用户数据或生产系统时,应先确认最小权限、脱敏方式和操作边界。

php-logging-audit 是开发类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证信息还不明确,第三方扫描已通过,按安装量在开发类的 21,746 个 Skill 里排第 17,352。

总安装 419周安装 18GitHub Stars 291下载 147核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:php-logging-audit(PHP logging 审核)
来源仓库:https://github.com/0xshe/php-code-audit-skill
仓库路径:skills/php-logging-audit
安装命令:
npx skills add https://github.com/0xshe/php-code-audit-skill --skill php-logging-audit
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/0xshe/php-code-audit-skill --skill php-logging-audit

这个 Skill 是做什么的

开发类 Skill 面向写代码、改代码和排查问题,一般会读写仓库文件,部分还会执行构建或测试命令。

用于辅助 PHP 日志记录功能的安全审计与风险识别。适合检查日志路径、敏感信息泄露和权限控制。php-logging-audit 属于开发类 Skill,可作为该场景下的辅助能力补充。可帮助 Agent 分析鉴权逻辑并生成安全复核清单。支持在 Codex、Claude、Cursor、Gemini CLI 中调用。

涉及用户数据时应优先确认脱敏方式和存储权限。

来源仓库内路径:skills/php-logging-audit

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/0xshe/php-code-audit-skill --skill php-logging…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

php-logging-audit 怎么安装?

在终端执行 npx skills add https://github.com/0xshe/php-code-audit-skill --skill php-logging-audit。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

php-logging-audit 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

php-logging-audit 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

php-logging-audit 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

php-logging-audit 用的人多吗?

公开数据是累计安装 419 次,近一周安装 18 次,下载 147 次,GitHub 291 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

php-logging-audit 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理开发类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

开发类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
skill-vetter

技能审查员 · OpenClaw

8,779,018986操作浏览器MIT-0通过
ontology

本体论 · OpenClaw

6,636,960576只读MIT-0通过
entra-app-registration

内部应用程序注册 · Codex、Claude

6,631,872764接触敏感数据未明确通过
entra-app-registration

内部应用程序注册 · Codex、Claude

3,757,680201接触敏感数据未明确通过
nano-banana-pro

纳米香蕉专业版 · OpenClaw

3,526,898364接触敏感数据MIT-0有提醒
php-logging-audit

PHP logging 审核 · 本页

419291需要联网未明确通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

PHP 安全日志与监控审计(php-logging-audit)

分析 PHP 项目在“安全可观测性”方面的代码与配置缺陷。核心目标不是泛化“要不要打日志”,而是识别可落地的问题:攻击者可否通过输入污染日志、系统是否把敏感信息写入日志、关键安全事件是否缺失、以及告警/审计链是否被破坏。

分级与编号

  • 详见:shared/SEVERITY_RATING.md
  • 漏洞编号:{C/H/M/L}-LOG-{序号}

覆盖范围(必做:必须逐项检查并输出证据)

本 skill 必须覆盖下列四类缺陷,并为每一类给出“证据点 + 影响 + 可利用性分析 + 修复建议”:

1) 安全事件审计缺失(Audit Gap)

识别缺失的安全事件日志点,例如(以项目实际入口为准):

  • 登录失败/成功与账号枚举相关失败原因记录(避免泄露敏感细节)
  • 权限拒绝/越权尝试(拒绝原因可抽象化记录)
  • 密码重置、邮箱变更、管理员角色变更、2FA 变更等关键账户事件
  • 敏感操作(导出数据、下载密钥、删除/修改权限、批量导入)
  • CSRF 校验失败、会话失效、注销成功等安全相关状态变化

要求输出:

  • “应当记录哪些事件”(按你在源码里识别到的功能点映射)
  • “实际写日志的位置是否存在/是否被绕过”(给出证据)
  • 缺失导致的真实后果推演(例如审计不可用、事后无法追溯、告警无法触发)

2) 敏感信息写入日志(Sensitive Data in Logs)

识别任何可能把敏感数据写入日志的路径:

  • Authorization 头、Cookie、session_id、JWT 原文
  • 密码/验证码/恢复 token/一次性口令
  • 用户隐私数据在失败栈或 debug 输出中被原样打印
  • 将请求体/参数(尤其是包含密钥字段)直接拼进日志消息

要求输出:

  • 敏感信息来源(来自哪些变量/请求字段)
  • 写日志的调用点与 message 构造方式
  • 日志的落地介质(文件路径/系统日志通道/日志库)

3) 日志注入与伪造(Log Injection / Forging)

识别“用户可控字符串进入日志消息但未做控制字符净化”的问题:

  • \r / \n 进入日志消息导致日志行拆分
  • 可能造成伪造时间戳、级别、请求路径等“假条目”
  • 若日志格式使用 JSON 或键值对,检查是否存在转义缺陷造成结构被破坏

要求输出:

  • 哪些字段可控(GET/POST/Headers/Body/Cookie)
  • 注入进入点(日志 message 拼接点)
  • 是否存在过滤/归一化(尤其是换行与控制字符处理)

4) 日志与告警链路缺陷(Monitoring & Alert Gaps)

识别监控链路缺口(以代码/配置能证明的为准):

  • 关键安全事件只记录 debug/info,未进入可告警通道
  • 日志级别与告警规则缺失(例如 production 关闭了安全告警 channel)
  • 错误处理吞掉异常导致关键事件没有被写入

要求输出:

  • 你在源码里定位到的日志级别/通道/handler 配置证据
  • 这些证据如何导致告警无法触发或取不到关键证据

识别逻辑(必做)

日志写入 Sink(代码)

必须识别以下日志相关 API(按项目实际替换):

  • PHP:error_log({value})
  • 系统:syslog({value})
  • PSR-3/框架:->info({value}) ->warning({value}) ->error({value}) ->critical({value}) ->debug({value})
  • Laravel/Symfony/自定义封装:Log::{value}({value})、logger->{value} 或项目自己的 logger wrapper
  • Monolog:Monolog\Logger 及 handler/channel 相关配置

消息构造与可控性(数据流)

对每个日志写入点,必须追踪至少一条链:

  • Source(请求字段/用户输入/敏感 token 来源) -> 中间变量处理(拼接、格式化、json_encode、模板字符串) -> Sink(最终写入日志的 message 参数)

并输出:

  • 可控字段名(或 JSON 路径)
  • 进入日志前是否有净化(换行/控制字符/敏感字段脱敏)
  • 是否有条件分支导致“只有某些分支才写日志”(写日志绕过)

PoC(必做:可观测验证框架)

由于“日志缺陷”往往需要观察日志输出,你必须给出可观测 PoC 框架(可执行或可手动验证),至少包括以下两类其一:

  • 使用真实路由触发日志写入,并说明预期日志中出现的字段/格式变化
  • 使用构造 payload 注入换行/控制字符,说明预期日志会被拆行或出现伪造片段

PoC 输出要求:

  • 必须包含真实路由(优先从 routes_{timestamp}.md 替换;独立落盘见 route_mapping/routes_{timestamp}.md,约定见 shared/IO_PATH_CONVENTION.md)
  • 必须写出用于触发的请求头与 body/参数(至少包含一个会进入日志消息的可控字段)
  • 必须说明你要在日志文件/控制台/系统日志中观察什么(例如某字段是否原样出现)

报告输出

输出到:

{output_path}/vuln_audit/logging_{timestamp}.md

漏洞条目模板(强制)

每条漏洞必须遵循以下结构(不得省略):

### [{等级前缀}-LOG-{序号}] {风险标题}

| 项目 | 信息 |
|------|------|
| 严重等级 | {🔴/🟠/🟡/🔵} (CVSS {score}) |
| 可达性 (R) | {0-3} - {理由} |
| 影响范围 (I) | {0-3} - {理由} |
| 利用复杂度 (C) | {0-3} - {理由} |
| 可利用性 | ✅ 已确认 / ⚠️ 待验证 / ❌ 不可利用 / 🔍 环境依赖 |
| 位置 | {file}:{line} ({Function/Class}) |

#### 漏洞类型与证据点
- 缺陷类别:{Audit Gap / Sensitive Data in Logs / Log Injection / Monitoring Gap}
- 证据点 A(日志写入调用点):{file}:{line} 说明
- 证据点 B(消息构造/可控字段进入点):{file}:{line} 说明
- 证据点 C(净化/脱敏是否存在):{file}:{line} 说明(如无则写“未发现脱敏/未发现过滤”并给出搜索结论)

#### 数据流链(Source -> Transform -> Sink)
(逐行写出:请求输入如何被读取/解析/格式化 -> 是否进入日志 message -> 最终写入日志)

#### 可利用前置条件
- 鉴权要求:{无需/需登录/需特定权限}
- 输入可控性:{完全可控/条件可控/不可控}
- 触发条件:{分支/错误路径/异常路径/日志级别条件}
- 可观测性:{日志落地位置是否可读/是否在生产可见/是否需要运维权限}

#### 验证 PoC(强制,可观测)

{HTTP Method} {真实路由与完整参数} HTTP/1.1 Host: {host} {必要 Header/Session/JWT/Cookie}

{Payload}


(PoC 之后你需要观察的日志现象:{明确写出预期日志内容/格式变化/是否出现换行拆分})

#### 建议修复

- 安全写法要点:敏感字段脱敏、控制字符净化、structured logging、日志级别与告警映射
- 代码搜索语句:使用 `rg` 定位所有日志写入与 message 构造相关代码块

输出完整性检查(强制)

  • [ ] 每条漏洞都包含:编号、等级、位置、数据流链、可利用前置条件、可观测 PoC、修复建议
  • [ ] 日志注入类问题必须明确使用控制字符 payload(至少包含换行注入场景)
  • [ ] 敏感信息类问题必须明确指出敏感字段来源与写入位置
  • [ ] 审计缺失类问题必须明确指出“应该记录但未记录”的对照逻辑(基于源码事件点推断,而不是泛泛而谈)

平台分布

Codex

37.81%
按下载量换算56

Claude

32.55%
按下载量换算48

Cursor

16.83%
按下载量换算25

Gemini CLI

8.8%
按下载量换算13

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills