# 11.8 安全加固清单 :::tip 概述 安全加固按层次组织:配置层(密钥/开关)、网络层(暴露面/代理)、数据层(账号/备份)、应用层(上传/权限)。威胁→控制全景见 [4.10 安全架构设计](../architecture/security)。 ::: ## 配置层加固(上线必须) ```text □ jwt.secret 高强度随机(≥32 字节随机串),与环境隔离 □ captcha.bypassCode = ""(万能验证码清空) □ app.demo = false □ app.errorMsg = false(不暴露内部错误) □ server.errorStack = false □ database.default.debug = false □ redis.default.pass 强密码(非 123456) □ file.fileExt 按业务收紧(公网上传移除 js/css/sql) □ cors.allowOrigin 收敛为具体域名(非同域部署时) ``` ## 网络层加固 ```text □ 数据库/Redis 内网访问(安全组/防火墙仅放应用网段) □ 后端 :8000 不直接对外(仅 Nginx 反代) □ HTTPS 全站(前置代理终止;HSTS 可选) □ api.proxyIps 只列真实反代出口(防 XFF 伪造) □ /swagger 与 /api.json 收紧(内网/Basic Auth/关闭暴露) □ 管理后台可加 IP 白名单(Nginx allow/deny) ``` ## 数据层加固 ```text □ 数据库独立账号(非 root;仅目标库 DML 权限) □ 定期备份(见 11.9 备份与恢复)+ 恢复演练 □ 初始 admin 强密码(导入种子后立即改) □ 敏感配置不进 git(.env 注入;私有仓库) □ 日志目录权限最小化(含操作日志脱敏后仍属敏感) ``` ## 应用层加固 ```text □ 限流开启(authLimit 10/分钟/IP 不调大——防暴力破解) □ 权限最小化授予(新接口必须声明 permission;定期审计角色授权) □ 超管账号专人管理(通配权限 *:*:*) □ 在线用户定期巡检(异常会话强退——双令牌拉黑) □ 操作日志定期审计(登录日志看异常 IP/归属地) □ 上传目录禁止执行权限(Nginx 对 /upload 不解析脚本) □ 富文本外链不本地化已防 SSRF(保持该行为,勿自行"增强") ``` ## 运维层加固 ```text □ 服务器最小化安装(关无用端口/服务) □ SSH 密钥登录、禁 root 直登 □ 系统安全补丁定期更新 □ 容器场景:非 root 运行、镜像扫描 □ 日志采集与告警(错误激增/登录失败激增) □ 应急预案:禁用账号/封禁 IP/回滚流程演练 ``` ## 定期审计项(月度) ```text 1. 角色权限盘点:长期不用的角色/权限回收 2. 在线用户:异地/异常会话清理 3. 登录日志:失败尝试 Top IP(配合限流阈值评估) 4. 操作日志:高危操作(删除/导出)追溯 5. 备份可用性:随机抽恢复演练 6. 依赖漏洞:go mod / pnpm audit 7. /api.json 权限点核对(防新接口漏配 permission) ``` ## 应急响应 | 事件 | 动作 | |------|------| | 账号泄露 | 禁用账号 + 在线用户强退(双令牌拉黑)+ 改密 + 审计日志 | | 令牌泄露 | RemoveToken 撤销指定令牌;必要时改 jwt.secret 全量失效 | | 数据库泄露 | 改库密码/轮换密钥;评估备份与日志暴露面 | | 恶意上传 | 收紧 fileExt;清理上传目录;审计上传记录 | | DDoS/刷接口 | 调小 rateLimit 阈值;前置 WAF/CDN;封禁 IP 段 |