Install
openclaw skills install @thcjp/log-sanitizer-freeopenclaw skills install @thcjp/log-sanitizer-free日志中的敏感信息雷达。六大类别识别,本地运行零数据外泄。
你的应用日志中是否无意间写入了数据库密码?调试日志是否泄露了API令牌?生产日志归档前是否需要脱敏才能满足合规要求?
日志脱敏工具免费版扫描日志文件,识别密码、令牌、密钥、个人隐私等六大类敏感信息,自动替换为占位符并生成脱敏报告。默认本地运行,确保日志内容不上传任何外部服务.
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | 日志脱敏工具处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
┌────────────────────────────────────────────────┐
│ 日志脱敏扫描体系 │
├────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ 扫描引擎 │ │ 规则匹配 │ │
│ │ Scanner │ │ Matcher │ │
│ │ │ │ │ │
│ │ 本地模式 │ │ 正则+关键词 │ │
│ │ 单文件/目录 │ │ 双重检测 │ │
│ └──────────────┘ └──────────────┘ │
│ │ │ │
│ └────────────────┼─────────┘ │
│ ▼ │
│ ┌──────────────┐ │
│ │ 脱敏替换 │ ← 占位符 │
│ │ Redactor │ 替换 │
│ └──────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ 报告生成 │ ← 文本/JSON │
│ │ Reporter │ 格式 │
│ └──────────────┘ │
│ │
└────────────────────────────────────────────────┘
# 扫描单个日志文件(本地模式,默认)
python3 (请参考skill目录中的脚本文件) scan app.log
# ...
# 扫描整个日志目录
python3 (请参考skill目录中的脚本文件) scan /var/log/myapp/
# ...
# 输出JSON格式报告(适合自动化集成)
# ...
# 预览模式(仅显示发现的敏感信息,不修改文件)
将以下内容加入应用的发布前检查清单:
## 快速开始
1. 确认运行环境满足依赖说明中的要求
2. 在AI Agent对话中调用本技能,提供必要的输入参数
3. 检查输出结果,根据需要进行后续处理
> 详细的输入输出格式请参考下方章节说明。
## 上线前日志脱敏检查
# ...
每次发布前执行日志脱敏扫描:
python3 (请参考skill目录中的脚本文件) scan logs/ --preview
# ...
如发现HIGH级别敏感信息,立即修复后重新扫描.
| 类别 | 检测内容 | 风险等级 |
|---|---|---|
| 密码 | password、passwd、pwd字段及赋值 | HIGH |
| 令牌 | API Key、Bearer Token、JWT | HIGH |
| 密钥 | 私钥、SSH Key、加密密钥 | CRITICAL |
| 个人隐私 | 身份证号、手机号、邮箱 | MEDIUM |
| 财务信息 | 银行卡号、信用卡号 | HIGH |
| 内部端点 | 数据库连接串、内网地址 | MEDIUM |
处理: 解析六大敏感信息类别的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回六大敏感信息类别的响应数据,包含状态码、结果和日志.
| 级别 | 含义 | 建议操作 |
|---|---|---|
| LOW | 轻微隐患,可继续使用 | 留意观察 |
| MEDIUM | 潜在风险,建议处理 | 推荐脱敏处理 |
| HIGH | 严重泄露风险,需立即处理 | 立即脱敏 |
处理: 解析三级风险评级的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回三级风险评级的响应数据,包含状态码、结果和日志.
password=、api_key:)处理: 解析双重检测机制的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回双重检测机制的响应数据,包含状态码、结果和日志.
处理: 解析本地模式保障的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回本地模式保障的响应数据,包含状态码、结果和日志.
input_params参数,支持创建/查询/导出操作
能力覆盖范围:本skill的核心能力覆盖以下场景关键词:扫描日志文件识别、并脱敏密码、密钥等敏感信息、支持正则规则与自、定义模式、本地运行零数据外、日志脱敏工具免费、版解决日志安全的、隐性泄露、开发者将应用日志、上传到排查平台时、无意间泄露数据库、API、令牌被写入调试日、生产环境日志包含、用户隐私字段、合规审计要求日志、中不得出现明文敏、感信息、这些场景下、原始日志直接归档、或转发会带来严重、的安全与合规风险、Use、when、需要安全检测、合规审计、漏洞扫描、加密防护时使用、不适用于渗透测试、未授权目标等.痛点:开发者在本地调试时输出了数据库连接信息和API令牌,担心日志文件随项目一起提交到代码仓库导致泄露. 解决方案:
# 预览模式扫描日志目录
python3 (请参考skill目录中的脚本文件) scan logs/ --preview
# ...
# 确认后执行脱敏(自动备份原文件)
python3 (请参考skill目录中的脚本文件) scan logs/ --redact
效果:5分钟完成日志目录全量扫描,发现敏感信息后自动脱敏并备份原文件,避免密钥泄露到代码仓库.
痛点:运维团队需要将生产日志转发到第三方排查平台,但日志中可能包含用户隐私字段,直接转发违反数据保护规定. 解决方案:
# 批量扫描并脱敏日志目录
python3 (请参考skill目录中的脚本文件) scan /var/log/myapp/ --redact --json > report.json
# ...
# 查看脱敏报告
cat report.json | python3 -m json.tool
效果:脱敏后的日志可安全转发到第三方平台,JSON报告记录所有脱敏位置便于审计追溯.
痛点:测试过程中生成的调试日志包含测试账号密码,需要在归档前清理敏感信息. 解决方案:
# 扫描测试日志
python3 (请参考skill目录中的脚本文件) scan test-output/debug.log --preview
# ...
# 脱敏后归档
用法:
python3 (请参考skill目录中的脚本文件) scan <路径> [选项]
# ...
选项:
<路径> 扫描文件或目录
--preview 预览模式(仅显示,不修改)
--redact 执行脱敏(自动备份原文件为 .bak)
--json JSON格式输出报告
--quiet 静默模式(仅输出HIGH级别)
--rules <文件> 自定义规则文件(YAML格式)
--help 显示帮助
# ...
示例:
python3 (请参考skill目录中的脚本文件) scan logs/ --redact --json
========================================
日志脱敏扫描报告
========================================
# ...
扫描文件:app.log
# ...
[LOW] line 12: 疑似邮箱地址
user@example.com → ***@example.com
[MEDIUM] line 45: 疑似手机号
13800138000 → 138****8000
[HIGH] line 89: 疑似API Key
api_key: sk-abc123... → api_key: ***REDACTED***
# ...
========================================
总计:3处敏感信息
风险评级:HIGH
建议操作:立即脱敏处理
========================================
# custom-rules.yaml
rules:
- name: 内部数据库连接
pattern: 'mongodb://\S+'
replacement: 'mongodb://***REDACTED***'
severity: HIGH
# ...
- name: 自定义令牌
pattern: 'my_token=\S+'
replacement: 'my_token=***REDACTED***'
severity: MEDIUM
# ...
- name: 内部IP地址
pattern: '\b10\.\d{1,3}\.\d{1,3}\.\d{1,3}\b'
replacement: '10.*.*.*'
severity: LOW
# .gitlab-ci.yml 片段
log-security-check:
stage: test
script:
- python3 (请参考skill目录中的脚本文件) scan logs/ --preview --json > log-report.json
- |
if grep -q '"severity": "HIGH"' log-report.json; then
echo "发现HIGH级别敏感信息,阻断发布"
exit 1
fi
--preview确认发现的敏感信息,再执行--redact脱敏..bak备份文件,确认脱敏正确后及时清理备份.不会。免费版默认使用本地模式,所有扫描与脱敏在本地完成,不上传任何日志内容到外部服务。仅使用正则与关键词模式匹配检测敏感信息,确保数据零外泄.
本地模式基于正则规则与关键词匹配,对常见敏感格式(API Key、JWT、邮箱、手机号)的检测准确率约85%。对于业务自定义格式的敏感信息,建议通过--rules参数补充自定义规则.
免费版脱敏为不可逆替换(敏感信息替换为占位符)。建议在脱敏前使用--preview确认,脱敏后的.bak备份文件保留原始内容,确认脱敏正确后请安全删除备份.
支持文本格式日志文件(.log、.txt、.out)。不支持二进制日志和压缩日志,建议先解压或转换为文本格式再扫描.
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent平台内置LLM提供 |
| Python 3.8+ | 运行时 | 必需 | 从python.org安装 |
| PyYAML | Python库 | 可选 | pip install pyyaml(自定义规则功能需要) |
| log-sanitizer.py | 脚本 | 必需 | 随本技能提供 |
本作品在原始日志脱敏理念基础上进行了深度差异化改造,包括但不限于:
本免费体验版限制以下高级功能:
解锁全部功能请使用专业版:log-sanitizer-pro
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
{
"success": true,
"data": {
"result": "日志脱敏工具处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "log sanitizer"
}
},
"execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
"error": null
}