# 项目问题报告 ## P0 — 严重(需立即修复) | # | 问题 | 文件 | 说明 | |---|------|------|------| | P0 | 多租户隔离完全失效 | `yubb-framework/.../YubbTenantLineHandler.java` | TenantLineHandler 实现被注释,租户间数据互通 | | P0 | SQL 注入风险 | `yubb-system/.../DynamicSqlProvider.java` | 直接拼接用户输入到 SQL(insertDynamic、updateDynamic 等方法) | | P0 | 硬编码密钥 | 多文件 | MinIO 密码、阿里云 AK/SK、微信 appId/secret 等明文存储 | --- ## P1 — 高优先级 | # | 问题 | 文件 | 说明 | |---|------|------|------| | P1 | 管理后台绕过 | `yubb-admin/.../SysPowerController.java:82` | 硬编码 admin ID,可跳过权限校验 | | P1 | XSS 防护关闭 | `yubb-admin/.../application.yml:99` | `xss.enabled: false` | | P1 | Shiro Cookie 未设置 HttpOnly | `yubb-admin/.../application.yml:92` | `HttpOnly: false`,session cookie 可被 JS 窃取 | | P1 | tenant_id 列无索引 | `sql/yb-20210820.sql` | JOIN 和 WHERE 过滤时全表扫描 | --- ## P2 — 中优先级 | # | 问题 | 文件 | 说明 | |---|------|------|------| | P2 | Spring Boot 2.5.6 已 EOL | `pom.xml:45` | 2021 年发布,无安全补丁,建议升级至 2.7.x 或 3.x | | P2 | pom.xml 版本不一致 | `pom.xml` | mybatis-plus(声明 3.5.3 / 实际 3.4.3.4)、druid(声明 1.2.4 / 实际 1.1.17) | | P2 | 无单元测试 | — | 零测试文件,生产系统无保障 | --- ## P3 — 低优先级 | # | 问题 | 文件 | 说明 | |---|------|------|------| | P3 | 大量 System.out.println | 多处 | 30+ 处,分布在生产路径,应替换为日志框架 | | P3 | SysSingleController 职责过大 | `yubb-admin/.../SysSingleController.java` | 超过 750 行,混杂 Web 层/业务逻辑/数据格式化 | | P3 | Controller 间直接 Autowire | `SysSingleController` | 直接 Autowire shujuController,违反分层原则 | | P3 | NullPointerException 风险 | `SysPowerController.java:79-82` | stationId 为 null 时仍调用 `.equals()` | | P3 | Maven 仓库使用 HTTP | `pom.xml:426-428,436-438` | `http://maven.aliyun.com` 非 HTTPS,存在中间人攻击风险 | | P3 | tenant 过滤配置重复 | `yubb-admin/.../application.yml:150-151` | platform_role_menu 和 platform_user_role 重复列出 | --- ## 修复优先级汇总 | 优先级 | 问题数 | 关键项 | |--------|--------|--------| | P0 | 3 | 多租户隔离失效、SQL 注入、硬编码密钥 | | P1 | 4 | admin 绕过、XSS 关闭、HttpOnly 未设置、tenant_id 无索引 | | P2 | 3 | Spring Boot EOL、版本不一致、零测试 | | P3 | 6 | System.out、God Controller、HTTP 仓库 等 |