# 圣巧依 / 酷冰甲 CMS — 完整性 · 安全性审计 & 后台美化报告 - 本地:`G:\www\phpEnv\www\圣巧依新的` - 远端:https://st-joyapparel.com/ (后台 `admin`) - 技术栈:原生 PHP MVC(自研路由/View/Model),MySQL / 文件双驱动 - 说明:项目为 PHP 服务端渲染,与 Nuxt/Nuxt-UI 无关,本次未引入前端框架。 --- ## 一、完整性检查(结论:结构完整,运行正常) | 项目 | 结果 | |---|---| | 路由分发 `App::run` / `dispatch` | 正常,前台/后台/CRM/PSI 分区清晰 | | 自愈安装 `Installer::upgrade` | 正常,缺表自动补齐(本地空库首访即建表) | | 本地启动(PHP 8.1 内置服务器) | 成功,`/admin/login` HTTP 200 | | 登录后仪表盘 `/admin` | 成功渲染(22KB),**无 PHP 报错/警告** | | 静态资源 `serveFile` | 正常,且有目录穿越防护(realpath 前缀校验) | | 权限模型 | 完善:`admin_can` 能力位 + `super_admin/admin/user` 角色 + CRM/PSI 子系统角色 | > 已核验:登录 → 仪表盘链路可用,各导航项 SVG 图标正确输出(共 40 个内联 SVG)。 --- ## 二、安全性审计 ### 已有的良好实践(保持) - **SQL 注入**:`Core\Model` 全量使用 PDO 预处理,未见拼接。✅ - **CSRF**:`csrf_field()` / `csrf_check()`(`hash_equals` 常量时间比较)。✅ - **密码**:`password_hash` / `password_verify`。✅ - **会话加固**:`HttpOnly` + `SameSite=Lax`,HTTPS 下 `Secure`,登录后 `session_regenerate_id`。✅ - **登录限流**:失败次数限制,防暴力破解。✅ - **安全响应头**:`apply_security_headers()`(含 CSP、X-Frame-Options 等)。✅ - **XSS 输出**:视图统一 `e()` 转义。✅ - **生产后门**:`allow_config_fallback=false`,已封堵配置文件兜底账号。✅ ### 🔴 高危(需你在服务器侧尽快处理) 1. **远端默认密码 `admin888` 仍可登录** - 配置注释已注明"远端已实测默认密码可登录"。数据库中 `admin` 账户口令仍是弱口令。 - **动作**:登录后台 → 修改密码,改为 12 位以上强口令;建议同时新建个人管理员账号、停用/重命名默认 `admin`。 - 本地代码无法改远端数据库口令,必须手动操作。 2. **`config/config.php` 明文数据库凭据入库到仓库** - `git status` 显示仓库在版本控制下,明文库名/账号/密码一旦泄露即可被连库。 - **动作**:将 `config/config.php` 加入 `.gitignore`;生产用环境变量或服务器本地不入库的配置;若已 push 过,需在服务器**轮换数据库密码**。 ### 🟠 中危(本次已在代码层修复) 3. **文件上传仅校验扩展名 → SVG 存储型 XSS / 伪造图片** - 原 `uploadFile()` 只看扩展名,允许 `.svg`;SVG 可内嵌 `