docs: 记录 MySQL 公网白名单规则 (#85)

This commit is contained in:
chengma
2026-08-10 09:44:24 +08:00
parent de8c61879e
commit ddce0f6679
4 changed files with 15 additions and 6 deletions
+4 -2
View File
@@ -27,8 +27,10 @@
- 固定使用 **Go + Gin + Go 标准库 `html/template`**。
- 生产数据库固定 **MySQL 8.4**,驱动固定
`github.com/go-sql-driver/mysql` **v1.9.2**(纯 Go,兼容 Go 1.23)。
- Admin 必须与 MySQL 同机或走私有网络;生产默认连接 `127.0.0.1:3307`,
**不得为了远程访问开放公网 MySQL 端口**。
- Admin 默认与 MySQL 同机或走私有网络;生产默认连接 `127.0.0.1:3307`,
不得把 MySQL 端口向全网开放。项目负责人明确批准公网直连时,只允许固定 `/32`
来源白名单,并同时满足:公网接口其余来源 DROP、账号按来源 IP 创建、最小库权限、
`REQUIRE SSL`、root 仍仅限本机。公网 IP 变化时先更新白名单,不得临时改成 `%`。
- Windows 本地运行允许把 MySQL 账号密码写入已被 Git 忽略的 `admin/config.yaml`;
线上部署仍优先使用权限为 `600` 的环境文件。`CMAUTOBUY_DB_*` 环境变量按字段
覆盖 YAML,真实 `config.yaml` 不得提交、打包、截图或复制到工单和日志。
+3 -2
View File
@@ -13,8 +13,9 @@
# 顺运宝接口细节见 docs/admin/08-顺运宝接口.md。
database:
# MySQL 8 地址。本机 MySQL 或 SSH 隧道都写 127.0.0.1,禁止为了本地开发
# 把线上 3307 端口开放到公网。
# MySQL 8 地址。本机 MySQL 或 SSH 隧道都写 127.0.0.1。数据库客户端需要
# 公网直连时,必须先按 admin/AGENTS.md 配置固定 IP 白名单和强制 SSL;
# 绝不能把 3307 向所有公网来源开放。
host: 127.0.0.1
# 本机 MySQL 默认可写 3307;连接线上 MySQL 的 SSH 隧道可改成 13307。
+4 -2
View File
@@ -177,8 +177,10 @@ database:
password: "从安全渠道取得"
```
连接线上 MySQL 时仍通过 SSH 隧道,把 `port` 改为隧道的本地端口;禁止开放线上
MySQL 公网端口。线上 systemd 部署继续使用环境变量:
Admin 本地开发连接线上 MySQL 时默认仍通过 SSH 隧道,把 `port` 改为隧道的本地
端口。数据库客户端确需公网直连时,只能在项目负责人明确批准后采用固定 `/32`
来源白名单、来源限定账号、最小权限和强制 SSL,绝不能向全网开放。线上 systemd
部署继续使用环境变量:
```text
CMAUTOBUY_DB_HOST=127.0.0.1
+4
View File
@@ -169,6 +169,10 @@
Git 忽略且不得随程序打包、截图或粘贴到工单和日志;线上优先使用权限 `600` 的
环境文件,环境变量按字段覆盖 YAML。
`[必须]` MySQL 公网端口不得向全网开放。项目负责人明确批准直连时,必须同时使用
固定 `/32` 来源白名单、公网接口其余来源 DROP、来源 IP 限定账号、最小库权限和
`REQUIRE SSL`;root 始终仅限服务器本机。
## 7. 性能
规模很小(个位数操作员、集中部署),不要提前优化。但下面几条是基本功: