🔴 安全:敏感信息硬编码与配置管理 #2

Closed
opened 2026-08-01 08:25:09 +08:00 by shellway · 1 comment
Owner

关联主报告:#1

整理自 2026-07-31 代码审核报告,按严重级别归并。

待办项

  1. alpha/config.py L19 — 数据库密码明文硬编码

    • db_password: str = "postgres" 随源码提交,存在泄露风险
    • 改为从环境变量读取:field(default_factory=lambda: os.getenv("DB_PASSWORD", ""))db_host/db_user 等同步支持环境变量覆盖
  2. quantitative_data/config.py L42/L56 — 关键凭证空字符串默认值

    • QUANT_DB_PASSWORDTUSHARE_TOKEN 未设置时静默返回 "",失败点后置、难排查
    • 改为启动期强校验:未设置直接 raise ValueError
  3. quantitative_data/config.py L32 — load_dotenv(override=True) 覆盖系统环境变量

    • 服务器/容器环境里生产配置可能被本地 .env 覆盖
    • 改为 override=False,或按 ENVIRONMENT 变量决定
  4. alpha/config.py L15 — 内网 IP 写死🟢 优化)

    • db_host: str = "192.168.27.15" 降低环境可移植性,建议环境变量覆盖、默认 localhost
  5. .env 防误提交:确认 .gitignore 已忽略 .env(提供 .env.example

关联主报告:#1 整理自 2026-07-31 代码审核报告,按严重级别归并。 ## 待办项 1. **`alpha/config.py` L19 — 数据库密码明文硬编码** - `db_password: str = "postgres"` 随源码提交,存在泄露风险 - 改为从环境变量读取:`field(default_factory=lambda: os.getenv("DB_PASSWORD", ""))`,`db_host`/`db_user` 等同步支持环境变量覆盖 2. **`quantitative_data/config.py` L42/L56 — 关键凭证空字符串默认值** - `QUANT_DB_PASSWORD`、`TUSHARE_TOKEN` 未设置时静默返回 `""`,失败点后置、难排查 - 改为启动期强校验:未设置直接 `raise ValueError` 3. **`quantitative_data/config.py` L32 — `load_dotenv(override=True)` 覆盖系统环境变量** - 服务器/容器环境里生产配置可能被本地 `.env` 覆盖 - 改为 `override=False`,或按 `ENVIRONMENT` 变量决定 4. **`alpha/config.py` L15 — 内网 IP 写死**(🟢 优化) - `db_host: str = "192.168.27.15"` 降低环境可移植性,建议环境变量覆盖、默认 localhost 5. **`.env` 防误提交**:确认 `.gitignore` 已忽略 `.env`(提供 `.env.example`)
Author
Owner

所有五项修改已完成,以下是变更清单:

1. alpha/config.py — 数据库密码明文硬编码

  • 移除硬编码的 "192.168.27.15""postgres"(用户)、"postgres"(密码)
  • 新增 import os,所有数据库字段改为 field(default_factory=lambda: os.getenv(...))
    • DB_HOST(默认 localhost
    • DB_PORT(默认 12345
    • DB_NAME(默认 quant_db
    • DB_USER(默认 postgres
    • DB_PASSWORD(默认空字符串)

2. quantitative_data/config.py — 关键凭证启动期强校验

  • QUANT_DB_PASSWORDTUSHARE_TOKEN 未设置时直接 raise ValueError,附带 Windows/Linux 设置指引

3. quantitative_data/config.pyoverride=Trueoverride=False

  • .env 不再覆盖系统环境变量,容器/服务器生产配置安全

4. alpha/config.py — 内网 IP 写死优化

  • db_host 默认值改为 localhost,通过 DB_HOST 环境变量覆盖

5. .env 防误提交

  • 新建 alpha/.gitignore(忽略 .env
  • 新建 alpha/.env.example(环境变量模板)
  • quantitative_data/.gitignore 已有 .env 忽略规则,quantitative_data/.env.example 已存在,均无需修改
所有五项修改已完成,以下是变更清单: ### 1. `alpha/config.py` — 数据库密码明文硬编码 ✅ - 移除硬编码的 `"192.168.27.15"`、`"postgres"`(用户)、`"postgres"`(密码) - 新增 `import os`,所有数据库字段改为 `field(default_factory=lambda: os.getenv(...))`: - `DB_HOST`(默认 `localhost`) - `DB_PORT`(默认 `12345`) - `DB_NAME`(默认 `quant_db`) - `DB_USER`(默认 `postgres`) - `DB_PASSWORD`(默认空字符串) ### 2. `quantitative_data/config.py` — 关键凭证启动期强校验 ✅ - `QUANT_DB_PASSWORD` 和 `TUSHARE_TOKEN` 未设置时直接 `raise ValueError`,附带 Windows/Linux 设置指引 ### 3. `quantitative_data/config.py` — `override=True` → `override=False` ✅ - `.env` 不再覆盖系统环境变量,容器/服务器生产配置安全 ### 4. `alpha/config.py` — 内网 IP 写死优化 ✅ - `db_host` 默认值改为 `localhost`,通过 `DB_HOST` 环境变量覆盖 ### 5. `.env` 防误提交 ✅ - **新建** `alpha/.gitignore`(忽略 `.env`) - **新建** `alpha/.env.example`(环境变量模板) - `quantitative_data/.gitignore` 已有 `.env` 忽略规则,`quantitative_data/.env.example` 已存在,均无需修改
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: shellway/quanxiel#2