<feat> 重构配置管理与安全检查机制,新增SQL解析器,优化数据库连接池管理

This commit is contained in:
tangyi
2025-05-09 11:36:30 +08:00
parent e0550a531d
commit 9cad3837a6
17 changed files with 1731 additions and 728 deletions

46
example.env Normal file
View File

@ -0,0 +1,46 @@
# 服务器配置
HOST=127.0.0.1 # 服务器监听地址
PORT=3000 # 服务器监听端口
# 数据库连接配置
MYSQL_HOST=localhost # MySQL服务器地址
MYSQL_PORT=3306 # MySQL服务器端口
MYSQL_USER=root # MySQL用户名
MYSQL_PASSWORD= # MySQL密码留空表示无密码
MYSQL_DATABASE=testdb # 要连接的数据库名
DB_CONNECTION_TIMEOUT=5 # 连接超时时间(秒)
DB_AUTH_PLUGIN=mysql_native_password # 认证插件类型
# 数据库连接池配置
DB_POOL_ENABLED=true # 是否启用连接池 (true/false)
DB_POOL_MIN_SIZE=5 # 连接池最小连接数
DB_POOL_MAX_SIZE=20 # 连接池最大连接数
DB_POOL_RECYCLE=300 # 连接回收时间(秒)
DB_POOL_MAX_LIFETIME=0 # 连接最大存活时间0表示不限制
DB_POOL_ACQUIRE_TIMEOUT=10.0 # 获取连接超时时间(秒)
# 环境类型
# development: 开发环境,较少限制
# production: 生产环境,严格安全限制
ENV_TYPE=development
# 安全配置
# 允许的风险等级: LOW(查询), MEDIUM(安全修改), HIGH(结构变更), CRITICAL(危险操作)
ALLOWED_RISK_LEVELS=LOW,MEDIUM
# 是否允许查询敏感字段信息(密码,凭证等)
ALLOW_SENSITIVE_INFO=false
# 最大SQL语句长度限制
MAX_SQL_LENGTH=5000
# 阻止的SQL模式多个模式用逗号分隔
# 例如: 'DROP TABLE,DROP DATABASE,DELETE FROM' 将阻止包含这些字符串的查询
BLOCKED_PATTERNS=
# 是否启用查询安全检查
ENABLE_QUERY_CHECK=true
# 日志配置
# DEBUG, INFO, WARNING, ERROR, CRITICAL
LOG_LEVEL=DEBUG