安全加固:MQTT broker 新增可选连接认证(bcrypt 用户+匿名开关+按 IP 失败限速,配置明文密码首启自动转哈希,默认关闭零影响),py 迁移脚本数据库口令改环境变量(新增 db_config.example.py 模板),新增 doc/SECURITY_FIX_TODO.md 安全修复清单,后端 v1.3.0

This commit is contained in:
2026-08-20 16:51:33 +08:00
parent fbd105bd6c
commit fe0cf036cf
11 changed files with 925 additions and 18 deletions
+36
View File
@@ -0,0 +1,36 @@
"""db_config 模板:复制为 db_config.py(已被 py/.gitignore 忽略)并按需修改。
口令一律从环境变量读取,严禁写进文件:
export MESH_SOURCE_DB_PASSWORD='...'
export MESH_TARGET_DB_PASSWORD='...'
"""
from __future__ import annotations
import os
def _require(name: str) -> str:
value = os.environ.get(name, "")
if not value:
raise RuntimeError(f"环境变量 {name} 未设置。请先 export 口令再运行。")
return value
SOURCE_CONFIG = {
"host": os.environ.get("MESH_SOURCE_DB_HOST", "source-db.example.com"),
"port": int(os.environ.get("MESH_SOURCE_DB_PORT", "3306")),
"user": os.environ.get("MESH_SOURCE_DB_USER", "meshuser"),
"password": _require("MESH_SOURCE_DB_PASSWORD"),
"database": os.environ.get("MESH_SOURCE_DB_NAME", "meshtastic_db"),
"charset": "utf8mb4",
}
TARGET_CONFIG = {
"host": os.environ.get("MESH_TARGET_DB_HOST", "target-db.example.com"),
"port": int(os.environ.get("MESH_TARGET_DB_PORT", "3306")),
"user": os.environ.get("MESH_TARGET_DB_USER", "meshtastic_db"),
"password": _require("MESH_TARGET_DB_PASSWORD"),
"database": os.environ.get("MESH_TARGET_DB_NAME", "meshtastic_db"),
"charset": "utf8mb4",
}