Security Audit mybay.app 2026.06.28

MyBay 安全审计 深度渗透评估报告

对 mybay.app 进行系统性安全审计,覆盖 OWASP 七大维度。包含技术栈分析、实现难度评估、攻击面测绘与修复路线图。

46
已发现 API 端点
15
可解析子域名
7
评分维度
P3
修复优先级
76
/100

综合安全评分 · B+

OWASP 基准 · 被动分析 · 无需认证

76 / 100
01

技术栈与实现难度

技术栈

React 18ViteExpress.js Tailwind CSSCloudflare CDN Cloudflare WorkersTurnstile Lucide IconsGoogle SSL

实现难度评估

中等偏高 (4/5) — SaaS 平台级系统

多租户隔离 全栈开发 多通道集成 安全合规 模型适配 运维监控
02

安全响应头分析

Header评估分数
Content-Security-Policydefault-src 'self'; script-src 'self' https://challenges.cloudflare.com; ...良好
8/8
Strict-Transport-Securitymax-age=31536000; includeSubDomains良好
5/5
X-Frame-OptionsDENY良好
3/3
X-Content-Type-Optionsnosniff良好
2/2
Referrer-Policystrict-origin-when-cross-origin良好
2/2
Permissions-Policycamera=(), microphone=(), geolocation=(), payment=()良好
2/2
X-Powered-ByExpress ⓘ 技术栈泄露改进建议
0/3
Cache-Control (HTML)public, max-age=0 ⓘ 建议 s-maxage可优化
0/2
Cache-Control (Static)public, max-age=14400良好
2/2
NEL / Report-To已配置良好
1/1
03

攻击面测绘

高风险

/api/credentials /api/admin/users /api/system/admin/* /api/instances/bulk-upgrade

中风险

/api/invite-codes /api/demo-proxy/token /api/instances

已保护

所有敏感端点返回 401 "Access token required",认证拦截到位

从 JS 编译包提取 46 个 API 端点 — SPA 架构正常现象,但攻击者可构建完整 API 地图

/api/credentials
/api/admin/users
/api/system/admin/*
/api/instances/bulk-upgrade
/api/instances
/api/invite-codes
/api/demo-proxy/token
/api/auth/login
/api/auth/register
/api/auth/me
/api/auth/config
/api/auth/forgot-password
/api/auth/reset-password
/api/auth/verify-email
/api/templates
/api/tasks
/api/system/features
/api/system/preflight
/api/system/settings
/api/system/test-channel
/api/system/test-llm
/api/agent-versions
/api/mybay-versions
/api/auth/email-change/*
/api/system/my-resource-policy
04

认证与访问控制

速率限制
10次/窗口 · x-ratelimit-limit/remaining/reset 头部完整
CAPTCHA 保护
Cloudflare Turnstile · sitekey: 0x4AAAAAADm6...
未认证拦截
敏感端点返回 401 · 无数据泄露
JWT 认证
Bearer token 模式 · 邮箱验证端点存在
错误信息细节
"用户名或邮箱、以及密码均不能为空" 暴露验证逻辑
05

子域名暴露

发现 15 个可解析子域名,其中开发环境子域名需关注

wwwapiapp adminauthcdn staticdocsblog devstagingconsole statusmailtest
06

七维评分模型

维度得分满分评估进度
🛡 基础防御1720CSP/HSTS/XFO 完善,unsafe-inline + X-Powered-By 扣分
🔒 认证安全1620Rate limit + Turnstile + JWT,错误消息泄露
🔑 密钥保护1115加密存储 + 401 到位,/api/credentials 存在即风险
🌀 攻击面91546端点 + 15子域名 + admin/bulk-upgrade 暴露
📈 日志监控810NEL + Report-To 已配,缺 CSP report-uri
📖 透明合规710/privacy + /terms + robots.txt,缺 security.txt
输入验证810CSP 防 XSS 有效,权限策略到位,无显式 CSRF token
总分76100
07

攻击路径推演

Step 1
信息收集
✓ 已缓解
Step 2
暴力破解
✓ 已缓解
Step 3
Token 窃取
✓ 已缓解
Step 4
权限提升
⚠ 待验证
Step 5
凭证泄露
⚠ 待验证
攻击链分析:
1. JS 编译包 → 提取 46 个 API 端点 ✓ 401 拦截
2. 暴力破解 /api/auth/login ✓ Rate limit 10次 + Turnstile
3. JWT 伪造/窃取 ✓ Bearer token 验证
4. IDOR 越权访问 /api/credentials ⚠ 需认证后渗透确认
5. 水平越权访问其他用户实例 ⚠ RBAC 粒度待验证
需要认证后的主动渗透测试才能确认 IDOR 和权限提升风险。
08

修复路线图

P1 · 高优先级

移除 X-Powered-By
Express 默认泄露技术栈,app.disable('x-powered-by')
IDOR 渗透测试
对 /api/credentials 和 /api/instances 验证水平越权

P2 · 中优先级

错误信息模糊化
统一返回"登录信息有误"避免逻辑泄露
添加 security.txt
/.well-known/security.txt 漏洞披露政策
CSP report-uri
监控 CSP 违规行为

P3 · 低优先级

子域名审查
dev/staging/test 安全配置一致性
边缘缓存优化
只读端点添加 s-maxage 缓存
敏感文件防护确认
.env / .git/config 返回 403,确认有效
+

审计结论

MyBay 整体安全水平处于良好状态。 基础安全防护体系完善——CSP 策略精确限制了脚本来源,HSTS 强制 HTTPS 且覆盖子域名,Permissions-Policy 细粒度限制了浏览器 API 调用。认证层采用 Rate Limiting + Cloudflare Turnstile + JWT Bearer 三重防护,未认证请求被统一拦截。

主要改进空间集中在三个方面:信息泄露控制(X-Powered-By 头部、验证错误的过度细节)、攻击面优化(46 个客户端可见端点和 15 个可解析子域名)、及 IDOR 防护验证(需认证后渗透测试确认)。

从实现角度看,MyBay 是一个 中等偏高复杂度的 SaaS 平台,技术栈融合了 React 前端 + Express 后端 + Cloudflare 边缘网络,业务层面涵盖多租户隔离、多通道集成(飞书/Telegram/Discord)、多模型适配(DeepSeek/OpenAI/Gemini)及容器化运维监控,需要全栈、DevOps 及安全合规的综合技术能力。

ⓘ 本报告基于被动式外部分析,未进行实际渗透攻击。IDOR、SQL 注入、SSRF 等深度漏洞需认证后进行主动测试。