Scan Report
5 /100
baoyu-post-to-wechat
微信公众号文章发布工具,支持通过 API 或浏览器自动化方式发布 Markdown/HTML 文章
baoyu-post-to-wechat 是一个合法的微信公众号文章发布工具,所有能力与声明一致,无恶意行为发现。
Safe to install
该技能可安全使用。所有声明的网络请求指向微信官方 API (api.weixin.qq.com),所有 shell 命令为操作系统标准工具(osascript/xdotool/ydotool),用于剪贴板自动化。硬编码 IP 在第三方依赖中且为合理的 CDN 地址。
Findings 3 items
| Severity | Finding | Location |
|---|---|---|
| Info | 第三方依赖包含硬编码 IP | scripts/vendor/baoyu-md/src/extensions/alert.ts:157 |
| Low | 权限声明与实现差异 | scripts/paste-from-clipboard.ts:1 |
| Info | Chrome Profile 隔离 | scripts/check-permissions.ts:1 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | NONE | WRITE | ✓ Aligned | scripts/md-to-wechat.ts:62 创建临时 HTML 文件 |
| Network | READ | READ | ✓ Aligned | scripts/wechat-api.ts:48 仅向 api.weixin.qq.com 发送文章数据 |
| Browser | WRITE | WRITE | ✓ Aligned | scripts/cdp.ts 使用 Chrome CDP 进行自动化 |
| Shell | NONE | WRITE | ✓ Aligned | scripts/paste-from-clipboard.ts 使用 osascript/xdotool/ydotool |
| Environment | NONE | READ | ✓ Aligned | scripts/wechat-extend-config.ts 读取配置和凭证 |
1 High 27 findings
High IP Address 硬编码 IP 地址
138.112.25.25 scripts/vendor/baoyu-md/src/extensions/alert.ts:157 Medium External URL 外部 URL
https://mp.weixin.qq.com SKILL.md:322 Medium External URL 外部 URL
https://api.weixin.qq.com/cgi-bin/draft/add?access_token=ACCESS_TOKEN SKILL.md:387 Medium External URL 外部 URL
https://gemini.google.com/app scripts/vendor/baoyu-chrome-cdp/src/index.test.ts:242 Medium External URL 外部 URL
https://softonit.ru/ scripts/vendor/baoyu-md/src/code-themes/1c-light.min.css:6 Medium External URL 外部 URL
https://highlightjs.org/ scripts/vendor/baoyu-md/src/code-themes/default.min.css:6 Medium External URL 外部 URL
https://creativecommons.org/licenses/by-sa/4.0 scripts/vendor/baoyu-md/src/code-themes/nnfx-dark.min.css:6 Medium External URL 外部 URL
http://www.w3.org/2000/svg scripts/vendor/baoyu-md/src/constants.ts:79 Medium External URL 外部 URL
https://marked.js.org/ scripts/vendor/baoyu-md/src/extensions/alert.ts:23 Medium External URL 外部 URL
https://groups.google.com/g/mathjax-users/c/zThKffrrCvE?pli=1 scripts/vendor/baoyu-md/src/extensions/katex.ts:26 Medium External URL 外部 URL
https://www.plantuml.com/plantuml scripts/vendor/baoyu-md/src/extensions/plantuml.ts:7 Medium External URL 外部 URL
https://plantuml.com/text-encoding scripts/vendor/baoyu-md/src/extensions/plantuml.ts:35 Medium External URL 外部 URL
https://talk.commonmark.org/t/proper-ruby-text-rb-syntax-support-in-markdown/2279 scripts/vendor/baoyu-md/src/extensions/ruby.ts:5 Medium External URL 外部 URL
https://www.w3.org/TR/ruby/ scripts/vendor/baoyu-md/src/extensions/ruby.ts:6 Medium External URL 外部 URL
https://cdn-doocs.oss-cn-shenzhen.aliyuncs.com/npm/highlightjs/$ scripts/vendor/baoyu-md/src/utils/languages.ts:80 Medium External URL 外部 URL
https://mp.weixin.qq.com/ scripts/wechat-agent-browser.ts:6 Medium External URL 外部 URL
https://api.weixin.qq.com/cgi-bin/token scripts/wechat-api.ts:54 Medium External URL 外部 URL
https://api.weixin.qq.com/cgi-bin/material/add_material scripts/wechat-api.ts:55 Medium External URL 外部 URL
https://api.weixin.qq.com/cgi-bin/draft/add scripts/wechat-api.ts:56 Medium External URL 外部 URL
https://mmbiz.qpic.cn scripts/wechat-api.ts:179 Info Email 邮箱地址
[email protected] scripts/vendor/baoyu-md/src/code-themes/1c-light.min.css:4 Info Email 邮箱地址
[email protected] scripts/vendor/baoyu-md/src/code-themes/agate.min.css:3 Info Email 邮箱地址
[email protected] scripts/vendor/baoyu-md/src/code-themes/an-old-hope.min.css:3 Info Email 邮箱地址
[email protected] scripts/vendor/baoyu-md/src/code-themes/default.min.css:4 Info Email 邮箱地址
[email protected] scripts/vendor/baoyu-md/src/code-themes/felipec.min.css:3 Info Email 邮箱地址
[email protected] scripts/vendor/baoyu-md/src/code-themes/nnfx-dark.min.css:4 Info Email 邮箱地址
[email protected] scripts/vendor/baoyu-md/src/code-themes/tokyo-night-dark.min.css:5 File Tree
126 files · 404.3 KB · 10777 lines TypeScript 40f · 8425L
CSS 78f · 1408L
Markdown 4f · 900L
JSON 4f · 44L
├─
▾
references
│ ├─
▾
config
│ │ └─
first-time-setup.md
Markdown
│ ├─
article-posting.md
Markdown
│ └─
image-text-posting.md
Markdown
├─
▾
scripts
│ ├─
▾
vendor
│ │ ├─
▾
baoyu-chrome-cdp
│ │ │ ├─
▾
src
│ │ │ │ ├─
index.test.ts
TypeScript
│ │ │ │ └─
index.ts
TypeScript
│ │ │ └─
package.json
JSON
│ │ └─
▾
baoyu-md
│ │ ├─
▾
src
│ │ │ ├─
▾
code-themes
│ │ │ │ ├─
1c-light.min.css
CSS
│ │ │ │ ├─
a11y-dark.min.css
CSS
│ │ │ │ ├─
a11y-light.min.css
CSS
│ │ │ │ ├─
agate.min.css
CSS
│ │ │ │ ├─
an-old-hope.min.css
CSS
│ │ │ │ ├─
androidstudio.min.css
CSS
│ │ │ │ ├─
arduino-light.min.css
CSS
│ │ │ │ ├─
arta.min.css
CSS
│ │ │ │ ├─
ascetic.min.css
CSS
│ │ │ │ ├─
atom-one-dark-reasonable.min.css
CSS
│ │ │ │ ├─
atom-one-dark.min.css
CSS
│ │ │ │ ├─
atom-one-light.min.css
CSS
│ │ │ │ ├─
brown-paper.min.css
CSS
│ │ │ │ ├─
codepen-embed.min.css
CSS
│ │ │ │ ├─
color-brewer.min.css
CSS
│ │ │ │ ├─
dark.min.css
CSS
│ │ │ │ ├─
default.min.css
CSS
│ │ │ │ ├─
devibeans.min.css
CSS
│ │ │ │ ├─
docco.min.css
CSS
│ │ │ │ ├─
far.min.css
CSS
│ │ │ │ ├─
felipec.min.css
CSS
│ │ │ │ ├─
foundation.min.css
CSS
│ │ │ │ ├─
github-dark-dimmed.min.css
CSS
│ │ │ │ ├─
github-dark.min.css
CSS
│ │ │ │ ├─
github.min.css
CSS
│ │ │ │ ├─
gml.min.css
CSS
│ │ │ │ ├─
googlecode.min.css
CSS
│ │ │ │ ├─
gradient-dark.min.css
CSS
│ │ │ │ ├─
gradient-light.min.css
CSS
│ │ │ │ ├─
grayscale.min.css
CSS
│ │ │ │ ├─
hybrid.min.css
CSS
│ │ │ │ ├─
idea.min.css
CSS
│ │ │ │ ├─
intellij-light.min.css
CSS
│ │ │ │ ├─
ir-black.min.css
CSS
│ │ │ │ ├─
isbl-editor-dark.min.css
CSS
│ │ │ │ ├─
isbl-editor-light.min.css
CSS
│ │ │ │ ├─
kimbie-dark.min.css
CSS
│ │ │ │ ├─
kimbie-light.min.css
CSS
│ │ │ │ ├─
lightfair.min.css
CSS
│ │ │ │ ├─
lioshi.min.css
CSS
│ │ │ │ ├─
magula.min.css
CSS
│ │ │ │ ├─
mono-blue.min.css
CSS
│ │ │ │ ├─
monokai-sublime.min.css
CSS
│ │ │ │ ├─
monokai.min.css
CSS
│ │ │ │ ├─
night-owl.min.css
CSS
│ │ │ │ ├─
nnfx-dark.min.css
CSS
│ │ │ │ ├─
nnfx-light.min.css
CSS
│ │ │ │ ├─
nord.min.css
CSS
│ │ │ │ ├─
obsidian.min.css
CSS
│ │ │ │ ├─
panda-syntax-dark.min.css
CSS
│ │ │ │ ├─
panda-syntax-light.min.css
CSS
│ │ │ │ ├─
paraiso-dark.min.css
CSS
│ │ │ │ ├─
paraiso-light.min.css
CSS
│ │ │ │ ├─
pojoaque.min.css
CSS
│ │ │ │ ├─
purebasic.min.css
CSS
│ │ │ │ ├─
qtcreator-dark.min.css
CSS
│ │ │ │ ├─
qtcreator-light.min.css
CSS
│ │ │ │ ├─
rainbow.min.css
CSS
│ │ │ │ ├─
routeros.min.css
CSS
│ │ │ │ ├─
school-book.min.css
CSS
│ │ │ │ ├─
shades-of-purple.min.css
CSS
│ │ │ │ ├─
srcery.min.css
CSS
│ │ │ │ ├─
stackoverflow-dark.min.css
CSS
│ │ │ │ ├─
stackoverflow-light.min.css
CSS
│ │ │ │ ├─
sunburst.min.css
CSS
│ │ │ │ ├─
tokyo-night-dark.min.css
CSS
│ │ │ │ ├─
tokyo-night-light.min.css
CSS
│ │ │ │ ├─
tomorrow-night-blue.min.css
CSS
│ │ │ │ ├─
tomorrow-night-bright.min.css
CSS
│ │ │ │ ├─
vs.min.css
CSS
│ │ │ │ ├─
vs2015.min.css
CSS
│ │ │ │ ├─
xcode.min.css
CSS
│ │ │ │ └─
xt256.min.css
CSS
│ │ │ ├─
▾
extensions
│ │ │ │ ├─
alert.ts
TypeScript
│ │ │ │ ├─
footnotes.ts
TypeScript
│ │ │ │ ├─
index.ts
TypeScript
│ │ │ │ ├─
infographic.ts
TypeScript
│ │ │ │ ├─
katex.ts
TypeScript
│ │ │ │ ├─
markup.ts
TypeScript
│ │ │ │ ├─
plantuml.ts
TypeScript
│ │ │ │ ├─
ruby.ts
TypeScript
│ │ │ │ ├─
slider.ts
TypeScript
│ │ │ │ └─
toc.ts
TypeScript
│ │ │ ├─
▾
themes
│ │ │ │ ├─
base.css
CSS
│ │ │ │ ├─
default.css
CSS
│ │ │ │ ├─
grace.css
CSS
│ │ │ │ ├─
modern.css
CSS
│ │ │ │ └─
simple.css
CSS
│ │ │ ├─
▾
utils
│ │ │ │ └─
languages.ts
TypeScript
│ │ │ ├─
cli.ts
TypeScript
│ │ │ ├─
constants.ts
TypeScript
│ │ │ ├─
content.test.ts
TypeScript
│ │ │ ├─
content.ts
TypeScript
│ │ │ ├─
document.test.ts
TypeScript
│ │ │ ├─
document.ts
TypeScript
│ │ │ ├─
extend-config.ts
TypeScript
│ │ │ ├─
html-builder.test.ts
TypeScript
│ │ │ ├─
html-builder.ts
TypeScript
│ │ │ ├─
images.test.ts
TypeScript
│ │ │ ├─
images.ts
TypeScript
│ │ │ ├─
index.ts
TypeScript
│ │ │ ├─
render.ts
TypeScript
│ │ │ ├─
renderer.test.ts
TypeScript
│ │ │ ├─
renderer.ts
TypeScript
│ │ │ ├─
themes.ts
TypeScript
│ │ │ └─
types.ts
TypeScript
│ │ └─
package.json
JSON
│ ├─
cdp.ts
TypeScript
│ ├─
check-permissions.ts
TypeScript
│ ├─
copy-to-clipboard.ts
TypeScript
│ ├─
md-to-wechat.ts
TypeScript
│ ├─
package.json
JSON
│ ├─
paste-from-clipboard.ts
TypeScript
│ ├─
wechat-agent-browser.ts
TypeScript
│ ├─
wechat-api.ts
TypeScript
│ ├─
wechat-article.ts
TypeScript
│ ├─
wechat-browser.ts
TypeScript
│ └─
wechat-extend-config.ts
TypeScript
├─
_meta.json
JSON
└─
SKILL.md
Markdown
Dependencies 4 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
marked | ^15.0.6 | npm | No | 标准 Markdown 解析库 |
highlight.js | ^11.11.1 | npm | No | 代码高亮库 |
juice | ^11.0.1 | npm | No | HTML 内联样式库 |
fflate | ^0.8.2 | npm | No | 压缩库 |
Security Positives
✓ 所有网络请求指向微信官方 API (api.weixin.qq.com),非外部服务器
✓ 使用 Chrome 独立的 --user-data-dir 实现浏览器隔离
✓ 凭证仅用于本地 API 调用,不会上传到任何外部服务器
✓ 代码结构清晰,无混淆或隐藏逻辑
✓ 使用标准 TypeScript 和 npm 包,无可疑依赖
✓ 支持多账户隔离,每个账户使用独立的 Chrome Profile
✓ 临时文件在 /tmp 目录创建,使用后自动清理