## 安全增强 - 添加 CSRF 防护机制(Double Submit Cookie 模式) - 增强密码强度验证(8字符+两种字符类型) - 添加 Session 密钥安全检查 - 修复 .htaccess 文件上传漏洞 - 统一使用 getSafeErrorMessage() 保护敏感错误信息 - 增强数据库原型污染防护 - 添加被封禁用户分享访问检查 ## 功能修复 - 修复模态框点击外部关闭功能 - 修复 share.html 未定义方法调用 - 修复 verify.html 和 reset-password.html API 路径 - 修复数据库 SFTP->OSS 迁移逻辑 - 修复 OSS 未配置时的错误提示 - 添加文件夹名称长度限制 - 添加文件列表 API 路径验证 ## UI/UX 改进 - 添加 6 个按钮加载状态(登录/注册/修改密码等) - 将 15+ 处 alert() 替换为 Toast 通知 - 添加防重复提交机制(创建文件夹/分享) - 优化 loadUserProfile 防抖调用 ## 代码质量 - 消除 formatFileSize 重复定义 - 集中模块导入到文件顶部 - 添加 JSDoc 注释 - 创建路由拆分示例 (routes/) ## 测试套件 - 添加 boundary-tests.js (60 用例) - 添加 network-concurrent-tests.js (33 用例) - 添加 state-consistency-tests.js (38 用例) - 添加 test_share.js 和 test_admin.js ## 文档和配置 - 新增 INSTALL_GUIDE.md 手动部署指南 - 新增 VERSION.txt 版本历史 - 完善 .env.example 配置说明 - 新增 docker-compose.yml - 完善 nginx.conf.example Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
160 lines
4.8 KiB
Plaintext
160 lines
4.8 KiB
Plaintext
# ============================================
|
||
# 玩玩云 - 环境配置文件示例
|
||
# ============================================
|
||
#
|
||
# 使用说明:
|
||
# 1. 复制此文件为 .env
|
||
# 2. 根据实际情况修改配置值
|
||
# 3. ⚠️ 生产环境必须修改默认密码和密钥
|
||
#
|
||
|
||
# ============================================
|
||
# 服务器配置
|
||
# ============================================
|
||
|
||
# 服务端口
|
||
PORT=40001
|
||
|
||
# 运行环境(production 或 development)
|
||
NODE_ENV=production
|
||
|
||
# 强制HTTPS访问(生产环境建议开启)
|
||
# 设置为 true 时,仅接受 HTTPS 访问
|
||
ENFORCE_HTTPS=false
|
||
|
||
# 公开访问端口(nginx监听的端口,用于生成分享链接)
|
||
# 标准端口(80/443)可不配置
|
||
PUBLIC_PORT=80
|
||
|
||
# ============================================
|
||
# 安全配置
|
||
# ============================================
|
||
|
||
# JWT密钥(必须修改!)
|
||
# 生成方法: openssl rand -base64 32
|
||
# 或使用: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
|
||
JWT_SECRET=your-secret-key-PLEASE-CHANGE-THIS-IN-PRODUCTION
|
||
|
||
# Refresh Token 密钥(可选,默认使用 JWT_SECRET 派生)
|
||
# 建议生产环境设置独立的密钥
|
||
# REFRESH_SECRET=your-refresh-secret-key
|
||
|
||
# 管理员账号配置(首次启动时创建)
|
||
ADMIN_USERNAME=admin
|
||
ADMIN_PASSWORD=admin123
|
||
|
||
# ============================================
|
||
# CORS 跨域配置(重要!)
|
||
# ============================================
|
||
|
||
# 允许访问的前端域名
|
||
#
|
||
# 格式说明:
|
||
# - 单个域名: https://yourdomain.com
|
||
# - 多个域名: https://domain1.com,https://domain2.com
|
||
# - 开发环境: 留空或设置为 * (不安全,仅开发使用)
|
||
#
|
||
# ⚠️ 生产环境安全要求:
|
||
# 1. 必须配置具体的域名,不要使用 *
|
||
# 2. 必须包含协议 (http:// 或 https://)
|
||
# 3. 如果使用非标准端口,需要包含端口号
|
||
#
|
||
# 示例:
|
||
# ALLOWED_ORIGINS=https://pan.example.com
|
||
# ALLOWED_ORIGINS=https://pan.example.com,https://admin.example.com
|
||
# ALLOWED_ORIGINS=http://localhost:8080 # 开发环境
|
||
#
|
||
ALLOWED_ORIGINS=
|
||
|
||
# Cookie 安全配置
|
||
# 使用 HTTPS 时必须设置为 true
|
||
# HTTP 环境设置为 false
|
||
COOKIE_SECURE=false
|
||
|
||
# CSRF 防护配置
|
||
# 启用 CSRF 保护(建议生产环境开启)
|
||
# 前端会自动从 Cookie 读取 csrf_token 并在请求头中发送
|
||
ENABLE_CSRF=false
|
||
|
||
# ============================================
|
||
# 反向代理配置(Nginx/Cloudflare等)
|
||
# ============================================
|
||
|
||
# 信任代理配置
|
||
#
|
||
# 配置选项:
|
||
# - false: 不信任代理(默认,直接暴露到公网时使用)
|
||
# - 1: 信任第1跳代理(推荐,单层Nginx反向代理时使用)
|
||
# - 2: 信任前2跳代理(Cloudflare + Nginx)
|
||
# - loopback: 仅信任本地回环地址
|
||
# - true: 信任所有代理(不推荐,易被伪造IP)
|
||
#
|
||
# ⚠️ 重要: 如果使用 Nginx 反向代理并开启 ENFORCE_HTTPS=true
|
||
# 必须配置 TRUST_PROXY=1,否则后端无法正确识别HTTPS请求
|
||
#
|
||
TRUST_PROXY=false
|
||
|
||
# ============================================
|
||
# 存储配置
|
||
# ============================================
|
||
|
||
# 数据库路径
|
||
DATABASE_PATH=./data/database.db
|
||
|
||
# 本地存储根目录(本地存储模式使用)
|
||
STORAGE_ROOT=./storage
|
||
|
||
# ============================================
|
||
# OSS 云存储配置(可选)
|
||
# ============================================
|
||
#
|
||
# 说明: 用户可以在 Web 界面配置自己的 OSS 存储
|
||
# 支持:阿里云 OSS、腾讯云 COS、AWS S3
|
||
# 此处配置仅作为全局默认值(通常不需要配置)
|
||
#
|
||
|
||
# OSS_PROVIDER=aliyun # 服务商: aliyun/tencent/aws
|
||
# OSS_REGION=oss-cn-hangzhou # 地域
|
||
# OSS_ACCESS_KEY_ID=your-key # Access Key ID
|
||
# OSS_ACCESS_KEY_SECRET=secret # Access Key Secret
|
||
# OSS_BUCKET=your-bucket # 存储桶名称
|
||
# OSS_ENDPOINT= # 自定义 Endpoint(可选)
|
||
|
||
# ============================================
|
||
# Session 配置
|
||
# ============================================
|
||
|
||
# Session 密钥(用于验证码等功能)
|
||
# 默认使用随机生成的密钥
|
||
# SESSION_SECRET=your-session-secret
|
||
|
||
# Session 过期时间(毫秒),默认 30 分钟
|
||
# SESSION_MAX_AGE=1800000
|
||
|
||
# ============================================
|
||
# 开发调试配置
|
||
# ============================================
|
||
|
||
# 日志级别 (error, warn, info, debug)
|
||
# LOG_LEVEL=info
|
||
|
||
# 是否启用调试模式
|
||
# DEBUG=false
|
||
|
||
# ============================================
|
||
# 注意事项
|
||
# ============================================
|
||
#
|
||
# 1. 生产环境必须修改以下配置:
|
||
# - JWT_SECRET: 使用强随机密钥
|
||
# - ADMIN_PASSWORD: 修改默认密码
|
||
# - ALLOWED_ORIGINS: 配置具体域名
|
||
#
|
||
# 2. 使用 HTTPS 时:
|
||
# - ENFORCE_HTTPS=true
|
||
# - COOKIE_SECURE=true
|
||
# - TRUST_PROXY=1 (如使用反向代理)
|
||
#
|
||
# 3. 配置优先级:
|
||
# 环境变量 > .env 文件 > 默认值
|