扫描报告
5 /100
wechat-typeset-pro
微信公众号专业排版技能 — Markdown to WeChat-compatible inline-style HTML with 30 themes, gallery preview, and optional draft publishing
WeChat public account Markdown formatting tool with fully declared filesystem writes, shell subprocess calls, and WeChat API network access — all necessary and appropriate for its stated purpose.
可以安装
Skill is safe to use. No action required.
安全发现 3 项
| 严重性 | 安全发现 | 位置 |
|---|---|---|
| 低危 | Output directory hardcoded in config.json | config.json:3 |
| 低危 | config.json marked sensitive by pre-scan | config.json:1 |
| 提示 | No dependency version pinning | N/A |
| 资源类型 | 声明权限 | 推断权限 | 状态 | 证据 |
|---|---|---|---|---|
| 文件系统 | WRITE | WRITE | ✓ 一致 | SKILL.md scripts/format.py & scripts/publish.py shell commands |
| 命令执行 | WRITE | WRITE | ✓ 一致 | scripts/publish.py:339 — subprocess.run(format_cmd) |
| 网络访问 | READ | READ | ✓ 一致 | scripts/publish.py:76-241 — WeChat API calls to api.weixin.qq.com |
| 浏览器 | READ | READ | ✓ 一致 | scripts/format.py — webbrowser.open() for gallery preview |
| 环境变量 | READ | READ | ✓ 一致 | scripts/publish.py:36-43 — reads WECHAT_APP_ID/SECRET from env |
| 技能调用 | WRITE | WRITE | ✓ 一致 | SKILL.md:format.py + publish.py script orchestration |
4 项发现
中危 外部 URL 外部 URL
https://api.weixin.qq.com/cgi-bin/token scripts/publish.py:76 中危 外部 URL 外部 URL
https://api.weixin.qq.com/cgi-bin/material/add_material scripts/publish.py:99 中危 外部 URL 外部 URL
https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token= scripts/publish.py:127 中危 外部 URL 外部 URL
https://api.weixin.qq.com/cgi-bin/draft/add?access_token= scripts/publish.py:241 目录结构
36 文件 · 359.7 KB · 13211 行 JSON 31f · 10028L
Python 2f · 2233L
HTML 2f · 704L
Markdown 1f · 246L
├─
▾
scripts
│ ├─
format.py
Python
│ └─
publish.py
Python
├─
▾
templates
│ ├─
gallery.html
HTML
│ └─
preview.html
HTML
├─
▾
themes
│ ├─
bauhaus.json
JSON
│ ├─
bold-blue.json
JSON
│ ├─
bold-green.json
JSON
│ ├─
bold-navy.json
JSON
│ ├─
bytedance.json
JSON
│ ├─
chinese.json
JSON
│ ├─
coffee-house.json
JSON
│ ├─
elegant-blue.json
JSON
│ ├─
elegant-green.json
JSON
│ ├─
elegant-navy.json
JSON
│ ├─
focus-blue.json
JSON
│ ├─
focus-gold.json
JSON
│ ├─
focus-red.json
JSON
│ ├─
github.json
JSON
│ ├─
ink.json
JSON
│ ├─
lavender-dream.json
JSON
│ ├─
magazine.json
JSON
│ ├─
midnight.json
JSON
│ ├─
minimal-blue.json
JSON
│ ├─
minimal-gold.json
JSON
│ ├─
minimal-gray.json
JSON
│ ├─
minimal-navy.json
JSON
│ ├─
minimal-red.json
JSON
│ ├─
mint-fresh.json
JSON
│ ├─
newspaper.json
JSON
│ ├─
sports.json
JSON
│ ├─
sspai.json
JSON
│ ├─
sunset-amber.json
JSON
│ ├─
terracotta.json
JSON
│ └─
wechat-native.json
JSON
├─
config.json
⚠
JSON
└─
SKILL.md
Markdown
依赖分析 3 项
| 包名 | 版本 | 来源 | 已知漏洞 | 备注 |
|---|---|---|---|---|
markdown | * | import | 否 | No requirements.txt; version not pinned |
requests | * | import | 否 | No requirements.txt; version not pinned |
dotenv | * | import | 否 | No requirements.txt; version not pinned |
安全亮点
✓ WeChat credentials are loaded from environment variables (~/.openclaw/.env), not hardcoded in config.json
✓ SKILL.md fully documents all scripts, parameters, and credential requirements
✓ Subprocess calls are explicitly declared as part of the workflow (format.py → publish.py chain)
✓ All network requests go to official WeChat API domain (api.weixin.qq.com) — no third-party exfiltration
✓ No base64/eval/obfuscation patterns found in any Python script
✓ No access to sensitive paths such as ~/.ssh, ~/.aws, .env files
✓ File operations are scoped to user-provided input files and configured output directories
✓ No hidden functionality detected — all HTML containers, callout syntax, and gallery features are documented in SKILL.md