# 企业官网 · 安全等级评估报告 > 评估对象:cloud-chip-laravel-vue(Laravel 12 + Vue3 CDN 零构建栈) > 评估日期:2026-08-03 > 评估方式:源码审计 + 本地运行验证(PHP 8.3 / MySQL 5.7),覆盖路由、控制器、中间件、配置、视图与依赖。 --- ## 一、综合评级 | 场景 | 综合等级 | 说明 | | --- | --- | --- | | 当前(本地开发配置) | **B** | 框架与代码安全基线良好;但 `.env` 仍是开发值(`APP_DEBUG=true`、`SESSION_SECURE_COOKIE=false`),且此前缺少响应头与登录节流(本次已修复)。 | | 部署合规后(修正配置 + HTTPS) | **A‑** | 达到企业官网安全基线。剩余项均为可选增强。 | > 评级说明:本项目基于 Laravel 12「安全优先」框架,代码层已具备 CSRF、参数化查询、输出转义、严格上传校验等能力;风险主要集中在**部署配置**与**纵深防御响应头**,均已给出整改项。 --- ## 二、各安全维度评分 | 维度 | 评级 | 关键依据 | | --- | --- | --- | | 注入防护(SQLi / XSS) | **A** | Eloquent 全程参数化查询,杜绝 SQL 注入;视图默认 `{{ }}` 转义;富文本经 `mews/purifier` 净化(default/article 两档)。 | | 身份认证与会话 | **A‑** | 密码 bcrypt 哈希;登录成功 `session()->regenerate()` 防会话固定;新增登录节流(5 次/分钟);后台具备 RBAC 五角色 + 权限点门禁。 | | Cookie 安全 | **B+** | `http_only=true`、`encrypt=true`、`same_site=lax` 均已开启;`secure` 在 `.env` 中为 `false`(本地值,上线须置 `true`)。 | | 配置安全 | **C+** | 当前 `.env`:`APP_DEBUG=true`、`APP_ENV=local`、数据库弱口令 `cloudchip_cn/cloudchip_cn`——**均为本地开发值,上线前必须修改**。 | | 传输与响应头 | **A‑** | 本次新增 `SecurityHeaders` 中间件:CSP、X-Frame-Options(DENY)、X-Content-Type-Options(nosniff)、Referrer-Policy、Permissions-Policy;HSTS 待生产 HTTPS 启用。 | | 文件上传 | **A** | `image` + `mimes:jpg,jpeg,png,gif,webp` + `max:5120` 严格校验;存储于 `storage/app/public`(经 `storage:link` 暴露,非 PHP 执行目录),命名随机防遍历。 | | 防滥用 / 限流 | **A‑** | 联系表单 `RateLimiter` 5 次/60 秒;登录接口新增 `ThrottlesLogins` 5 次/分钟(按 IP+邮箱)。 | | 依赖与供应链 | **B** | 仅引入 `mews/purifier`、`simple-qrcode` 等少量可信依赖;建议上线前执行 `composer audit`。 | | 日志与错误处理 | **B+** | `LOG_CHANNEL=stack`;只要 `APP_DEBUG=false`,异常不会向用户泄露堆栈与环境信息。 | --- ## 三、本次已实施的安全加固(代码层) 1. **新增 `App\Http\Middleware\SecurityHeaders` 并注册到 `web` 中间件组** - 下发 `Content-Security-Policy`(限制脚本/样式/连接/表单来源,显著缩小 XSS 影响面)、`X-Frame-Options: DENY`(防点击劫持)、`X-Content-Type-Options: nosniff`(防 MIME 嗅探)、`Referrer-Policy`、`Permissions-Policy`。 - 生产 + HTTPS 环境下自动追加 `Strict-Transport-Security`(HSTS,含 `preload`)。 - CSP 针对本项目的零构建架构做了适配:放行 `cdn.tailwindcss.com` 与内联脚本/样式(否则 Tailwind Play CDN 与内联 `tailwind.config` 会被拦截)。 2. **登录接口增加防暴力破解节流** - `LoginController` 引入 `ThrottlesLogins`,同一 IP+邮箱 每分钟最多 5 次,超限返回校验错误并锁定。 3. **修复联系表单 CSRF 失效缺陷(功能性 + 安全性)** - 发现布局缺少 ``,导致 Vue 联系表单取不到 token、提交被 Laravel 拦截返回 419(原表单实际不可用)。 - 已在布局 `` 补齐该 meta 标签,并经端到端验证:取 token → POST → 返回 `{"ok":true}`,HTTP 200。 --- ## 四、残余风险与整改建议(按优先级) ### P0 · 上线前必须完成 - [ ] **关闭调试模式**:`.env` 设 `APP_DEBUG=false`、`APP_ENV=production`。否则将向访客泄露堆栈、环境变量等敏感信息。 - [ ] **启用安全 Cookie**:`SESSION_SECURE_COOKIE=true`(HTTPS 站点必须),防止会话被明文中间人窃取。 - [ ] **强制 HTTPS**:在反向代理/Web 服务器层 301 跳转 HTTP→HTTPS,并启用 HSTS(中间件已在生产自动下发)。 - [ ] **数据库强口令 + 最小权限**:更换为高强度独立口令,账号仅授予本站库所需权限;切勿使用本地弱口令 `cloudchip_cn`。 - [ ] **保护敏感文件**:确保 `.env`、`.gitignore`、`.workbuddy` 等不被 Web 直接访问(当前项目结构 `.env` 在 `public/` 之外,已天然隔离;部署时复核 Nginx/Apache 配置,禁止访问点号开头的隐藏文件)。 ### P1 · 强烈建议 - [ ] **配置可信代理 `TrustProxies`**:若站点置于 CDN / 负载均衡之后,需在 `bootstrap/app.php` 声明可信代理,否则 `secure` cookie 与 `isSecure()` 会误判,影响 HTTPS 与会话安全。 - [ ] **依赖审计**:上线前执行 `composer audit` 并升级存在 CVE 的包。 - [ ] **后台安全增强**:管理员登录增加失败告警 / 锁定,条件允许时启用 2FA;对 `/admin` 异常访问做监控。 - [ ] **异常监控**:对批量联系提交、异常登录、5xx 突增配置告警。 ### P2 · 可选增强 - [ ] **收紧 CSP**:将 Tailwind 改为构建产物 + 为内联脚本加 `nonce`,从而移除 `unsafe-inline`,把 XSS 防御从「依赖转义」升级为「双层防护」。 - [ ] **合规页面**:补充 `security.txt`、隐私政策与备案信息展示(页脚已预留 ICP / 公安备案位)。 - [ ] **外部资源 SRI**:若后续引入任何第三方脚本/样式,添加子资源完整性校验。 --- ## 五、部署上线前必检清单 | 检查项 | 命令 / 位置 | 期望 | | --- | --- | --- | | 调试关闭 | `.env` `APP_DEBUG` | `false` | | 环境 | `.env` `APP_ENV` | `production` | | Cookie 安全 | `.env` `SESSION_SECURE_COOKIE` | `true` | | APP_KEY | `php artisan key:generate`(如未生成) | 已设置且唯一 | | 路由缓存 | `php artisan route:cache` | 无冲突 | | 视图缓存 | `php artisan view:cache` | 编译通过 | | 数据库迁移 | `php artisan migrate --force` | 成功 | | 依赖审计 | `composer audit` | 无高危 | | HTTPS | Web 服务器 / CDN | 已启用 + 跳转 | | 静态资源软链 | `php artisan storage:link` | `/storage` 可访问 | --- ## 六、验证记录(本地) | 页面 | 路由 | 状态码 | | --- | --- | --- | | 首页 | `/` | 200 | | 关于我们 | `/about` | 200 | | 产品服务 | `/products` | 200 | | 联系我们 | `/contact` | 200 | | 联系表单提交(带 CSRF) | `POST /contact` | 200 `{"ok":true}` | | 安全响应头 | 所有页面 | CSP / XFO / NoSniff / Referrer / Permissions 均已下发 | --- *报告由 WorkBuddy 基于真实源码与本地运行结果生成,非泛泛模板。所有 P0 项均为部署配置,不依赖代码改动即可完成。*