低风险 — 风险评分 20/100
上次扫描:11 小时前 重新扫描
20 /100
zhongjie
中介哥 - 专业买房参谋助手,搜索微信公众号房产文章、计算深圳积分入学、托管本地工作台
合法房产中介助手,所有能力与文档一致,4个硬编码占位IP为测试数据,无恶意行为。
技能名称zhongjie
分析耗时40.7s
引擎pi
可以安装
可安全使用。硬编码IP(123.0.0.0等)为测试占位符,部署前替换为真实配置即可。建议收紧 CORS 白名单(目前 allow_origins=* 仅绑定本地 127.0.0.1,风险可控)。

安全发现 3 项

严重性 安全发现 位置
低危
文档未声明 Playwright 反爬指纹伪装 文档欺骗
search_wechat.py 中 WECHAT_STEALTH_JS 覆盖 navigator.webdriver/languages/platform 等浏览器指纹,SKILL.md 未提及此实现细节。虽为合法反爬手段,但属于阴影功能(代码做了文档没说)。
WECHAT_STEALTH_JS = """Object.defineProperty(navigator, 'webdriver', { get: () => undefined }); ..."""
→ 在 SKILL.md 技术说明中补充 Playwright 指纹伪装说明,符合文档-行为一致原则
scripts/search_wechat.py:380
低危
硬编码占位 IP 地址 敏感访问
search_wechat.py 中 4 个硬编码 IP(123.0.0.0、122.0.0.0、124.0.0.0、131.0.0.0)明显为测试占位符,非真实外部通信地址,但 SKILL.md 未声明。
IP = '123.0.0.0'  # 测试占位符
→ 替换为真实高德/搜狗 API 地址或配置化
scripts/search_wechat.py:46,48,49,465
低危
无依赖版本锁定 供应链
未发现 requirements.txt 或 package.json,所有第三方依赖(fastapi, uvicorn, playwright)未声明版本范围。
→ 添加 requirements.txt 指定版本,避免供应链不确定性
资源类型声明权限推断权限状态证据
文件系统 WRITE WRITE ✓ 一致 server.py:89-93 读写 preferences.md, research.md, report.md, properties.json
网络访问 READ READ ✓ 一致 search_wechat.py:206-217 爬取搜狗微信
命令执行 WRITE WRITE ✓ 一致 SKILL.md:shell启动server.py和search_wechat.py
浏览器 READ READ ✓ 一致 Playwright爬取微信文章
技能调用 READ READ ✓ 一致 score_calculator.py纯计算
环境变量 READ READ ✓ 一致 utils.py读取PROJECT_ROOT,server.py读取.env
4 高危 21 项发现
📡
高危 IP 地址 硬编码 IP 地址
123.0.0.0
scripts/search_wechat.py:46
📡
高危 IP 地址 硬编码 IP 地址
122.0.0.0
scripts/search_wechat.py:48
📡
高危 IP 地址 硬编码 IP 地址
124.0.0.0
scripts/search_wechat.py:49
📡
高危 IP 地址 硬编码 IP 地址
131.0.0.0
scripts/search_wechat.py:465
🔗
中危 外部 URL 外部 URL
https://mp.weixin.qq.com/s/xxx
SKILL.md:221
🔗
中危 外部 URL 外部 URL
https://tailwindcss.com
assets/dist/assets/index-D6Fv9-73.css:1
🔗
中危 外部 URL 外部 URL
https://www.amap.com/search?query=
references/map_display.md:29
🔗
中危 外部 URL 外部 URL
https://www.amap.com/around?query=
references/map_display.md:35
🔗
中危 外部 URL 外部 URL
https://www.amap.com/search?query=绿城桂语兰庭&city=440300
references/map_display.md:51
🔗
中危 外部 URL 外部 URL
https://www.amap.com/search?query=拾悦城楠园&city=440300
references/map_display.md:54
🔗
中危 外部 URL 外部 URL
https://www.amap.com/around?query=学校&center=113.88
references/map_display.md:60
🔗
中危 外部 URL 外部 URL
https://www.amap.com/around?query=地铁站&center=113.88
references/map_display.md:61
🔗
中危 外部 URL 外部 URL
https://lbs.amap.com/
references/map_display.md:104
🔗
中危 外部 URL 外部 URL
http://bsy.sz.bendibao.com/bsyDetail/640838.html
references/school_enrollment_policies.md:192
🔗
中危 外部 URL 外部 URL
https://www.szgm.gov.cn/132100/135232/xwsq/542772/content/post_12211175.html
references/school_enrollment_policies.md:193
🔗
中危 外部 URL 外部 URL
https://city.shenchuang.com/city/20250221/1680964.shtml
references/school_enrollment_policies.md:194
🔗
中危 外部 URL 外部 URL
https://sz.bendibao.com/edu/2017329/790954.shtm
references/school_enrollment_policies.md:195
🔗
中危 外部 URL 外部 URL
https://weixin.sogou.com/
scripts/search_wechat.py:65
🔗
中危 外部 URL 外部 URL
https://v.sogou.com/v?ie=utf8&query=&p=40030600
scripts/search_wechat.py:138
🔗
中危 外部 URL 外部 URL
https://weixin.sogou.com
scripts/search_wechat.py:213
🔗
中危 外部 URL 外部 URL
https://weixin.sogou.com/weixin?query=
scripts/search_wechat.py:656

目录结构

11 文件 · 121.3 KB · 2597 行
Python 4f · 1370L Markdown 5f · 1212L HTML 1f · 13L CSS 1f · 2L
├─ 📁 assets
│ └─ 📁 dist
│ ├─ 📁 assets
│ │ └─ 📄 index-D6Fv9-73.css CSS 2L · 24.1 KB
│ └─ 📄 index.html HTML 13L · 401 B
├─ 📁 references
│ ├─ 📝 data_templates.md Markdown 218L · 4.9 KB
│ ├─ 📝 dimensions.md Markdown 294L · 12.5 KB
│ ├─ 📝 map_display.md Markdown 211L · 7.7 KB
│ └─ 📝 school_enrollment_policies.md Markdown 197L · 8.1 KB
├─ 📁 scripts
│ ├─ 🐍 score_calculator.py Python 291L · 10.6 KB
│ ├─ 🐍 search_wechat.py Python 823L · 29.3 KB
│ ├─ 🐍 server.py Python 214L · 6.6 KB
│ └─ 🐍 utils.py Python 42L · 1.4 KB
└─ 📝 SKILL.md Markdown 292L · 15.8 KB

依赖分析 3 项

包名版本来源已知漏洞备注
fastapi * pip (undeclared) 无版本锁定
uvicorn * pip (undeclared) 无版本锁定
playwright * pip (undeclared, optional) 仅 --fetch-content 模式需要,无版本锁定

安全亮点

✓ 所有文件操作(preferences.md, research.md, report.md, properties.json)均限制在 .skills-data/zhongjie/data/ 目录下,无越权访问
✓ server.py 仅监听 127.0.0.1,不会对外暴露服务
✓ 无凭证收割逻辑(不读取 ~/.ssh、.env 凭据、不遍历环境变量匹配敏感关键字)
✓ 无代码混淆、base64执行、eval() 等危险模式
✓ 无反向 shell、C2 通信或数据外泄行为
✓ 文档声明与实际能力高度一致(文档-行为差异极小)
✓ Playwright 反爬为行业标准操作,仅用于抓取微信公众号合法公开内容