Files
easygoadmin-wiki/EasyGoAdmin_Gin_AntdVue/zh/deploy/security.md
T
2026-10-25 17:24:27 +08:00

62 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 11.8 安全加固清单
:::tip 概述
安全是分层纵深:应用红线(prod 模式)→ 网络暴露面收敛 → 传输加密 → 数据与账号。本页按层给出可执行的加固项。
:::
## 应用层(硬红线)
| 项 | 要求 |
|---|---|
| app.prod | **true**——触发启动拒绝 |
| JWT 密钥 | 强随机长串,非默认样例值 |
| captcha.bypassCode | 空 |
| generator.enable | false |
| api.docs | false(或网关封锁 /swagger、/api.json) |
| api.metrics | false 或内网保护 |
| database.debug | false(SQL 不落日志) |
prod 模式不满足以上红线时**拒绝启动**——这是最后一道闸,不可绕过。
## 网络层
- MySQL/Redis 端口仅内网(compose 默认仅绑回环,保持)
- 应用 8000 不对公网,仅 Nginx 反代
- api.proxyIps 与真实拓扑一致,**严禁 0.0.0.0/0**(等于允许伪造来源 IP)
- 防火墙仅放行 443(必要时 80 跳转)
## 传输层
- HTTPS 全站(Nginx 终止 TLS,HSTS 可选)
- 文件域址(file.domainUrl)同样 https,防混合内容
- 内网 MySQL/Redis 可用 TLS 或纯内网隔离
## 数据层
- 数据库应用账号最小权限(仅 gin_* DML)
- Redis 设置密码
- 备份文件加密存放([11.9](/zh/deploy/backup.html))
- 日志脱敏:密码、Token 永不入日志(框架已保证,自定义日志注意)
## 入口防护
| 防护 | 配置 |
|---|---|
| 限流 | rateLimit 默认开启;公网可再降阈值 |
| 请求体限制 | api.maxBodyMB + nginx client_max_body_size |
| CORS | allowOrigin 收敛到实际域名 |
| temp 封禁 | nginx 与应用回退均已封(保持) |
| SVG | nginx 强制附件下载(保持,防内嵌脚本) |
## 运维层
- 上线走 `make check` 质量门禁
- 定期跑依赖漏洞扫描(govulncheck / 前端 audit)
- 账号:超管口令强且独立;离岗即回收角色
- 审计:操作日志/登录日志保留期符合合规
## 相关
- [4.11 安全架构设计](/zh/architecture/security.html)
- [11.1 部署 Checklist](/zh/deploy/checklist.html)