360 Secure SkillHub
360 安全技能中心

Content Scrubber

这是一个 OpenClaw 扩展插件,注册为消息拦截器,在消息发送到聊天平台前用确定性正则规则把 RFC 1918 内网 IP、回环地址、localhost 端口、SSH/SCP 目标和自定义主机名替换为占位符,并支持 dryRun 预演与按接收方跳过脱敏。

solomonneas
solomonneas
热度 45.59
最近更新 2026-05-11 17:34:36
分类:安全依赖:纯提示词应用场景:数据处理 / 自动化脚本 / DevOps / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add content-scrubber
Metadata
name
content-scrubber
version
1.0.0
description
OpenClaw plugin that scrubs private infrastructure details from outgoing messages. Regex-based redaction of RFC 1918 IPs, localhost ports, SSH targets, and hostnames before they reach Discord, Telegram, or other messaging surfaces.

Content Scrubber

An OpenClaw extension plugin that intercepts outgoing messages and redacts private infrastructure details before delivery.

What It Catches

  • RFC 1918 IPv4 addresses: 10.x.x.x, 172.16-31.x.x, 192.168.x.x
  • Loopback addresses: 127.x.x.x
  • localhost with ports: localhost:8080, localhost:3000, etc.
  • SSH/SCP targets: user@10.0.0.1:/path
  • Custom hostnames: configurable hostname patterns

How It Works

The plugin registers as a message interceptor. Before any message leaves OpenClaw (Discord, Telegram, Signal, etc.), it runs through regex-based scrubbing rules that replace private details with safe placeholders like [redacted-ip], [redacted-service], [redacted-target].

Rules are deterministic (regex, not LLM), so they're fast, auditable, and never miss edge cases that an LLM scrubber would.

Installation

  1. Copy the plugin files to your OpenClaw extensions directory:

    ~/.openclaw/extensions/content-scrubber/
    ├── index.ts
    ├── openclaw.plugin.json
    └── package.json
    
  2. Add to your openclaw.json plugins config:

    {
      "plugins": {
        "entries": {
          "content-scrubber": {
            "enabled": true,
            "config": {
              "dryRun": false,
              "allowedRecipients": []
            }
          }
        }
      }
    }
    
  3. Restart OpenClaw.

Configuration

Option Type Default Description
dryRun boolean false Log what would be scrubbed without actually redacting
allowedRecipients string[] [] Chat IDs where scrubbing is skipped (e.g., private DMs with yourself)

Example

Before scrubbing:

SSH into admin@10.0.0.50 and check the service on localhost:8096

After scrubbing:

SSH into [redacted-target] and check the service on [redacted-service]