安全修复: - WebSocket 端点添加认证(cookie/token),防止未授权窃听日志 - SPA serve_spa 添加路径遍历防护(resolve + relative_to 检查) - Token 改用 httpOnly Cookie 存储,移除前端 localStorage token(防 XSS 窃取) - 添加安全响应头中间件(X-Content-Type-Options/X-Frame-Options/Referrer-Policy) - HTTP 请求日志脱敏请求体中的 password/secret/token 等敏感字段 - 权限检查统一使用 user_has_permission(考虑自定义权限,修复 has_permission 忽略 custom_permissions 的缺陷) 性能与稳定性: - cookies.py 列表接口修复 N+1 查询(改为批量查询 Account) - login_service.py run() 结束时关闭 DB Session(防止连接泄漏) - _active_batches/_active_tests 全局字典添加 threading.Lock(防止并发竞态) 配置优化: - CORS 源支持环境变量 CORS_ORIGINS 配置 - Uvicorn reload 支持环境变量 UVICORN_RELOAD 控制(生产环境默认关闭) - Cookie 安全标志支持环境变量 COOKIE_SECURE 配置(HTTPS 部署时启用) - logs.py 权限不足返回 HTTP 403(原来返回 200 + message)
21 lines
701 B
Bash
21 lines
701 B
Bash
# ===== 环境变量配置 =====
|
|
# 复制此文件为 .env 并修改相应值
|
|
# Docker 部署时 docker-compose.yml 会自动读取 .env 文件
|
|
|
|
# JWT 密钥(生产环境必须设置!)
|
|
# 生成方式: python -c "import secrets; print(secrets.token_urlsafe(32))"
|
|
JWT_SECRET_KEY=
|
|
|
|
# 默认管理员账号(仅首次启动建库时生效)
|
|
ADMIN_USERNAME=admin
|
|
ADMIN_PASSWORD=admin123
|
|
|
|
# Cookie 安全标志(生产环境 HTTPS 部署时设为 true)
|
|
COOKIE_SECURE=false
|
|
|
|
# CORS 允许的源(逗号分隔,不设则默认开发环境)
|
|
# CORS_ORIGINS=https://example.com,https://www.example.com
|
|
|
|
# Uvicorn reload(开发模式设为 true,生产环境保持 false)
|
|
UVICORN_RELOAD=false
|