docs: 记录 MySQL 公网白名单规则 (#85)
This commit is contained in:
+4
-2
@@ -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` 不得提交、打包、截图或复制到工单和日志。
|
||||
|
||||
@@ -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。
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -169,6 +169,10 @@
|
||||
Git 忽略且不得随程序打包、截图或粘贴到工单和日志;线上优先使用权限 `600` 的
|
||||
环境文件,环境变量按字段覆盖 YAML。
|
||||
|
||||
`[必须]` MySQL 公网端口不得向全网开放。项目负责人明确批准直连时,必须同时使用
|
||||
固定 `/32` 来源白名单、公网接口其余来源 DROP、来源 IP 限定账号、最小库权限和
|
||||
`REQUIRE SSL`;root 始终仅限服务器本机。
|
||||
|
||||
## 7. 性能
|
||||
|
||||
规模很小(个位数操作员、集中部署),不要提前优化。但下面几条是基本功:
|
||||
|
||||
Reference in New Issue
Block a user