safe-web-fetch-for-save-token
安全的智能网页抓取技能,节省 50-80% Token。替代内置 web_fetch,自动使用 Jina Reader 清洗服务获取干净 Markdown。内置 URL 白名单验证、SSL 强制验证、敏感数据检测,防止 SSRF 和数据泄露。
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/bg1avd/safe-web-fetch-for-save-tokenSafe Web Fetch
安全的智能网页内容获取技能。保留原版的核心功能(Token 节省 50-80%),但增加多层安全防护。
核心功能
- 智能清洗: 自动使用 Jina Reader 获取干净 Markdown
- Token 优化: 去除广告、导航栏等噪音,节省 50-80% Token
- 安全防护:
- ✅ 强制 SSL 验证(不跳过)
- ✅ URL 白名单验证(阻止内网/私有 IP)
- ✅ 敏感数据检测(不发送包含 API Key/Token 的页面)
- ✅ 可配置允许列表
使用方式
基本用法
# 获取清洗后的 Markdown
python3 {baseDir}/scripts/safe_fetch.py "https://example.com/article"
# JSON 格式输出(包含元信息)
python3 {baseDir}/scripts/safe_fetch.py "https://example.com/article" --json
# 查看安全配置
python3 {baseDir}/scripts/safe_fetch.py --show-config
在 Agent 中使用
当用户需要获取网页内容时:
用户: "帮我查一下 https://example.com/article 的内容"
Agent 应该:
1. 运行: python3 ~/.openclaw/skills/safe-web-fetch/scripts/safe_fetch.py "https://example.com/article"
2. 获得清洗后的 Markdown 内容
安全特性
1. URL 白名单验证
阻止以下危险 URL:
- 私有 IP 地址(127.0.0.1, 192.168.x.x, 10.x.x.x, 172.16-31.x.x)
- localhost, *.local
- 内部域名(*.internal, *.localdomain)
- file://, ftp://, data:// 等非 HTTP 协议
2. 敏感数据检测
发送前检测页面内容,拒绝发送包含:
- API Keys(
api_key=,apikey=,key=) - Access Tokens(
access_token=,token=) - Bearer Tokens(
Bearer,Authorization:) - AWS Keys(
AKIA,aws_) - Private Keys(
-----BEGIN.*PRIVATE KEY-----)
3. 强制 SSL 验证
不会禁用 SSL 证书验证,确保:
- 连接真实的服务器
- 防止中间人攻击
- 证书错误时拒绝连接
4. 可配置允许列表
在 config.json 中配置:
{
"allowed_domains": ["example.com", "docs.example.com"],
"blocked_domains": ["ads.example.com"],
"max_content_size": 10485760,
"timeout": 30
}
输出格式
{
"success": true,
"url": "https://r.jina.ai/http://example.com/article",
"original_url": "https://example.com/article",
"content": "# Article Title\n\nClean markdown content here...",
"source": "jina",
"content_length": 1234,
"error": null
}
降级策略
- Jina Reader(首选)- 免费,支持好
- 原始内容(兜底)- 直连获取,本地清洗
与原版区别
| 特性 | 原版 smart-web-fetch | 本技能 safe-web-fetch |
|---|---|---|
| SSL 验证 | ❌ 禁用 | ✅ 强制 |
| URL 白名单 | ❌ 无 | ✅ 有 |
| 敏感数据检测 | ❌ 无 | ✅ 有 |
| SSRF 防护 | ❌ 无 | ✅ 有 |
| 修改 Agent 配置 | ⚠️ 会修改 | ❌ 不修改 |
| Token 节省 | 50-80% | 50-80% |
优势
- 🚀 Token 节省: 去除广告、导航栏等噪音
- 🔒 安全第一: 多层防护,防止数据泄露和 SSRF
- 🆓 零成本: 使用免费服务,无需 API Key
- 📝 干净输出: 纯 Markdown,无需额外解析
- ⚙️ 可配置: 允许列表、超时、大小限制均可配置
配置文件
创建 config.json 进行自定义配置:
{
"allowed_domains": [],
"blocked_domains": [],
"max_content_size": 10485760,
"timeout": 30,
"user_agent": "SafeWebFetch/1.0"
}
安全提示: 此技能不会修改 Agent 配置,不会自动接管 web_fetch。如需优先使用本技能,请手动在任务中调用。
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-bg1avd-safe-web-fetch-for-save-token": {
"enabled": true,
"auto_update": true
}
}
}Related Skills
Latex Verbatim Center
Skill by bg1avd
markdown-table-to-image
将 Markdown 表格转换为清晰图片。当用户说"表格看不清"、"生成图片"、"转成图片"时触发。
youtube-downloader-skimmer
下载 YouTube 视频并自动剪辑关键片段
task-queue-by-model-source
Multi-queue task orchestration system. Tasks are routed to queues by model source, with support for task dependencies, context passing, and failure handling. Each model source has its own FIFO queue, executing one task at a time.
QQBot Media Sender
一键发送图片/视频/文件到 QQ,支持批量发送和自动压缩