diff --git a/admin/AGENTS.md b/admin/AGENTS.md index 9c939a0..ed56187 100644 --- a/admin/AGENTS.md +++ b/admin/AGENTS.md @@ -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` 不得提交、打包、截图或复制到工单和日志。 diff --git a/admin/config.example.yaml b/admin/config.example.yaml index bfb1768..aa0eb65 100644 --- a/admin/config.example.yaml +++ b/admin/config.example.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。 diff --git a/docs/admin/00-getting-started.md b/docs/admin/00-getting-started.md index 8272d82..fbd1980 100644 --- a/docs/admin/00-getting-started.md +++ b/docs/admin/00-getting-started.md @@ -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 diff --git a/docs/admin/06-quality-security.md b/docs/admin/06-quality-security.md index f8c5a3d..da3ffaf 100644 --- a/docs/admin/06-quality-security.md +++ b/docs/admin/06-quality-security.md @@ -169,6 +169,10 @@ Git 忽略且不得随程序打包、截图或粘贴到工单和日志;线上优先使用权限 `600` 的 环境文件,环境变量按字段覆盖 YAML。 +`[必须]` MySQL 公网端口不得向全网开放。项目负责人明确批准直连时,必须同时使用 +固定 `/32` 来源白名单、公网接口其余来源 DROP、来源 IP 限定账号、最小库权限和 +`REQUIRE SSL`;root 始终仅限服务器本机。 + ## 7. 性能 规模很小(个位数操作员、集中部署),不要提前优化。但下面几条是基本功: