fix: harden cloud storage security
This commit is contained in:
54
README.md
54
README.md
@@ -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%
|
||||
|
||||
Reference in New Issue
Block a user