fix: harden cloud storage security

This commit is contained in:
237899745
2026-06-13 18:45:12 +08:00
parent 7943b04ee2
commit bb6ad01018
28 changed files with 2229 additions and 996 deletions

View File

@@ -54,11 +54,11 @@
- 支持SMTP配置
- 邮件模板可自定义
#### 🖥️ 桌面上传工具
- 拖拽上传,简单易用
- 实时显示上传进度
- 自动配置,无需手动设置
- 支持大文件上传
#### 🖥️ 桌面客户端
- Tauri + Vue 桌面端,默认对接网页端账号体系
- 支持文件浏览、搜索、上传、下载、分享/直链管理
- 支持断点下载、本地目录同步和客户端更新检测
- Windows 安装包可通过 `/api/client/desktop-update` 发布和下载
#### ⚡ 一键部署
- 全自动安装脚本install.sh
@@ -123,10 +123,10 @@ docker-compose logs -f
部署完成后,访问系统:
- **访问地址**: http://你的服务器IP
- **默认管理员账号**:
- 用户名: `admin`
- 密码: `admin123`
- ⚠️ **请立即登录并修改密码!**
- **管理员账号**:
- 安装脚本会要求你设置管理员用户名和强密码
- 密码至少 8 位,并且需要包含字母、数字、特殊字符中的至少两类
- 生产环境禁止使用 `admin123``12345678` 等默认弱密码
## 📖 使用指南
@@ -210,12 +210,12 @@ SMTP密码: 你的授权码
3. 复制分享链接发送给他人
4. 在"我的分享"中管理所有分享链接
### 使用桌面上传工具
### 使用桌面客户端
1. 进入"上传工具"页面
2. 下载适合你系统的上传工具
3. 输入服务器地址和API密钥
4. 拖拽文件即可上传
1. 在登录页点击"下载桌面客户端",或访问后端更新接口获取安装包信息
2. 安装后使用网页端账号登录
3. 在客户端中浏览文件、上传/下载、创建分享或直链
4. 如需发布新版本,将安装包放到 `frontend/downloads/` 并更新后台桌面端版本配置
## 📁 项目结构
@@ -244,11 +244,10 @@ vue-driven-cloud-storage/
│ ├── nginx.conf # 反向代理配置
│ └── nginx.conf.example # 配置模板
├── upload-tool/ # 桌面上传工具
│ ├── upload_tool.py # Python 上传工具源码
│ ├── requirements.txt # Python 依赖
── build.bat # Windows 打包脚本
│ └── build.sh # Linux/Mac 打包脚本
├── desktop-client/ # Tauri 桌面客户端
│ ├── src/ # Vue/TypeScript 前端
│ ├── src-tauri/ # Rust/Tauri 原生能力
── package.json # 桌面端依赖和构建脚本
├── install.sh # 一键安装脚本
├── docker-compose.yml # Docker 编排文件
@@ -267,7 +266,6 @@ vue-driven-cloud-storage/
- **bcrypt** - 密码加密
- **nodemailer** - 邮件发送
- **svg-captcha** - 验证码生成
- **express-session** - Session 管理
### 前端技术
- **Vue.js 3** - 渐进式 JavaScript 框架
@@ -286,7 +284,7 @@ vue-driven-cloud-storage/
### 认证与授权
- ✅ bcrypt 密码加密10轮盐值
- ✅ JWT 令牌认证
-Session 安全管理
-HttpOnly Cookie + CSRF 双提交令牌
- ✅ CORS 跨域配置
- ✅ SQL 注入防护(参数化查询)
- ✅ XSS 防护(输入过滤)
@@ -345,7 +343,7 @@ sudo cp /var/www/vue-driven-cloud-storage/backend/data/database.db \
# 备份上传文件(本地存储模式)
sudo tar -czf /backup/uploads-$(date +%Y%m%d).tar.gz \
/var/www/vue-driven-cloud-storage/backend/uploads/
/var/www/vue-driven-cloud-storage/backend/storage/
```
### 更新系统
@@ -396,7 +394,7 @@ A: 登录后进入"管理面板" → "存储管理",点击切换按钮即可
A: 点击登录页的"忘记密码",通过邮箱重置密码。如未配置邮箱,需要手动重置数据库。
**Q: 上传文件大小限制是多少?**
A: 默认限制 5GB可在 Nginx 配置中修改 `client_max_body_size`
A: 当前默认限制 10GB可在系统设置和 Nginx 配置中同步调整
### 故障排查
@@ -424,6 +422,16 @@ A: 默认限制 5GB可在 Nginx 配置中修改 `client_max_body_size`。
## 📝 更新日志
### v3.1.1 (2026-06-13)
- 🔐 统一文件虚拟路径校验,修复列表、上传、下载、分享相关路径边界问题
- 🔐 上传参数校验失败时清理临时文件,避免失败上传残留
- 🔐 密码策略统一为 8-128 字符且至少两类字符,安装脚本和前端提示同步更新
- 🔐 邮箱验证和重置密码链接使用后清理 URL token
- 🔐 分享页外部下载窗口增加 `noopener,noreferrer`
- 🧪 新增隔离 API 审计回归脚本覆盖登录、CSRF、文件、分享、直链和管理端脱敏
- 🛠️ 清理已废弃的 `SESSION_SECRET` / `express-session` 文档和安装脚本残留
- 🖥️ 明确桌面客户端更新接口和 Windows 安装包发布流程
### v3.1.0 (2025-01-18)
- 🚀 **重大架构优化**OSS 直连上传下载(不经过后端)
- 上传速度提升 50%,服务器流量节省 50%