feat: Phase 1 - 安全中间件 + 运维工具箱
Some checks failed
CI / test (3.10) (push) Has been cancelled
CI / test (3.11) (push) Has been cancelled
CI / test (3.12) (push) Has been cancelled
CI / test (3.13) (push) Has been cancelled

新增 oss/core/security/ 模块(852行):
- jwt_auth.py: JWT签发/验证(HMAC-SHA256,零外部依赖)
- csrf.py: CSRF Token生成与校验
- input_validator.py: JSON Schema校验+类型强制
- tls.py: 自签名证书生成+SSL上下文

新增 oss/core/ops/ 模块:
- health.py: 增强版/health端点(CPU/内存/磁盘/运行时间)
- metrics.py: Prometheus兼容/metrics端点

对接改造:
- engine.py: 导出新模块
- manager.py: 注册/api/login /health /metrics路由
- middleware.py: CSRF+InputValidation中间件
- config.py: JWT_SECRET/CSRF_SECRET等配置项
- security.py→security/__init__.py: 合并插件沙箱与HTTP安全
This commit is contained in:
2026-05-17 15:42:40 +08:00
parent e67d2d8ef6
commit 5e957096fa
12 changed files with 754 additions and 56 deletions

View File

@@ -40,12 +40,19 @@ class Config:
# 安全配置
"PERMISSION_CHECK": True,
"ENFORCE_SIGNATURE": True,
"CORS_ALLOWED_ORIGINS": ["http://localhost:3000", "http://127.0.0.1:3000"], # 允许的CORS来源
"CSRF_ENABLED": True, # 启用CSRF防护
"INPUT_VALIDATION_ENABLED": True, # 启用输入验证
"RATE_LIMIT_ENABLED": True, # 启用限流
"RATE_LIMIT_MAX_REQUESTS": 100, # 最大请求数
"RATE_LIMIT_TIME_WINDOW": 60, # 时间窗口(秒)
"JWT_SECRET": "",
"CSRF_SECRET": "",
"CSRF_TOKEN_TTL": 3600,
"TLS_CERT_DIR": "./data/tls",
"PUBLIC_PATHS": ["/health", "/favicon.ico", "/api/status", "/api/health", "/api/login", "/metrics"],
"ADMIN_USER": "admin",
"ADMIN_PASS": "admin123",
"CORS_ALLOWED_ORIGINS": ["http://localhost:3000", "http://127.0.0.1:3000"],
"CSRF_ENABLED": True,
"INPUT_VALIDATION_ENABLED": True,
"RATE_LIMIT_ENABLED": True,
"RATE_LIMIT_MAX_REQUESTS": 100,
"RATE_LIMIT_TIME_WINDOW": 60,
# 性能配置
"MAX_WORKERS": 4,