forked from kevin/meshtastic_mqtt_server
安全加固:MQTT broker 新增可选连接认证(bcrypt 用户+匿名开关+按 IP 失败限速,配置明文密码首启自动转哈希,默认关闭零影响),py 迁移脚本数据库口令改环境变量(新增 db_config.example.py 模板),新增 doc/SECURITY_FIX_TODO.md 安全修复清单,后端 v1.3.0
This commit is contained in:
@@ -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",
|
||||
}
|
||||
Reference in New Issue
Block a user