|
|
4f1a1ec97c
|
fix: 修复验证码请求429错误
问题:
- 短时间内多次请求验证码触发限流(429 Too Many Requests)
修复:
- 后端:验证码最小请求间隔从3秒改为1秒
- 前端:添加2秒防抖,避免重复请求
- 前端:429错误时保留已有验证码图片
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-28 14:06:23 +08:00 |
|
|
|
9d36063e09
|
fix: 修复验证码session不一致的问题
问题原因:
- 验证码图片通过<img src>加载,可能不携带session cookie
- 导致验证码生成和表单提交使用不同的session
修复方案:
- 改用axios请求获取验证码(blob格式)
- 确保验证码请求携带withCredentials
- 点击"忘记密码"时立即加载验证码
- 切换到注册模式时立即加载验证码
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-28 13:50:06 +08:00 |
|
|
|
540c292d70
|
feat: 实现Token刷新机制,缩短登录有效期
安全改进:
- Access Token有效期从7天缩短为2小时
- 添加Refresh Token机制(有效期7天)
- 关闭浏览器后较快失效,提升安全性
后端修改(auth.js):
- 添加generateRefreshToken函数生成刷新令牌
- 添加refreshAccessToken函数验证并刷新access token
- 分离ACCESS_TOKEN_EXPIRES和REFRESH_TOKEN_EXPIRES配置
后端修改(server.js):
- 登录时返回refreshToken和expiresIn
- 添加/api/refresh-token接口用于刷新token
- Cookie有效期同步调整为2小时
前端修改(app.js):
- 保存refreshToken到localStorage
- 添加自动刷新定时器(过期前5分钟刷新)
- 页面加载时若token过期自动尝试刷新
- 登出时清除refreshToken和定时器
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-28 13:46:51 +08:00 |
|
|
|
1d65e97b04
|
feat: 注册、重置密码、重发验证邮件添加验证码功能
后端修改:
- 添加通用验证码验证函数 verifyCaptcha()
- /api/register 接口添加验证码验证
- /api/password/forgot 接口添加验证码验证
- /api/resend-verification 接口添加验证码验证
前端修改:
- 注册表单添加验证码输入框和图片
- 忘记密码模态框添加验证码
- 重发验证邮件区域添加验证码输入
- 添加各表单的验证码刷新方法
- 提交失败后自动刷新验证码
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-28 13:11:03 +08:00 |
|
|
|
f8c9f8f739
|
✨ 新增独立的邮箱验证和重置密码页面
- 新建 verify.html: 邮箱验证专用页面,简洁美观
- 新建 reset-password.html: 重置密码专用页面,带表单验证
- 两个页面都支持亮色/暗色主题切换
- 更新 index.html 和 app.html 的重定向逻辑
- 旧链接自动重定向到新页面
用户体验改进:不再显示登录窗口背景,专注于当前操作
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-28 00:09:24 +08:00 |
|
|
|
4aaf6765eb
|
✨ 首页和登录页支持全局主题
- index.html 添加亮色主题 CSS 变量和样式
- index.html 添加 JS 自动加载全局主题
- app.js 修改 initTheme,未登录时从公开 API 获取全局主题
- 登录页面现在会跟随管理员设置的全局主题
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-28 00:00:53 +08:00 |
|
|
|
64268135aa
|
🔧 改进全局主题设置提示信息
当管理员设置了个人偏好时,提示"你设置了个人偏好,不受全局影响"
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 23:49:06 +08:00 |
|
|
|
551646244e
|
🔧 添加全局主题设置调试日志
添加console.log帮助诊断全局主题设置不生效的问题
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 23:45:31 +08:00 |
|
|
|
de871c1f8d
|
🐛 修复亮色主题下按钮不可见问题
- 添加 .btn-secondary 亮色主题样式(蓝色半透明背景)
- 添加 .btn-icon 亮色主题样式
- 修复管理员设置页面全局主题按钮显示问题
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 23:42:52 +08:00 |
|
|
|
39d5e37c2c
|
🐛 修复亮色主题导航栏文字颜色
- 添加 .nav-item 深色文字颜色
- 修复悬停和激活状态的颜色
- 添加 .user-info 深色文字
- 修复用户头像图标颜色
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 23:35:29 +08:00 |
|
|
|
265b5bf418
|
🐛 修复亮色主题下导航栏等组件的样式问题
- 添加亮色主题导航栏样式覆盖(白色半透明背景)
- 修复导航项悬停效果在亮色主题下的显示
- 修复用户信息区域的亮色主题样式
- 添加卡片、表格、模态框、输入框的亮色主题样式
这个修复解决了亮色主题下导航栏变黑、文字不可见的问题。
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 23:33:19 +08:00 |
|
|
|
209aa4a865
|
🐛 修复主题偏好刷新后丢失的问题
原因:authMiddleware 中的 req.user 对象没有包含 theme_preference 字段,
导致 /api/user/theme 接口始终返回 undefined,用户设置的主题无法被正确读取。
修复:在 req.user 中添加 theme_preference 字段
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 23:25:25 +08:00 |
|
|
|
0cd8341faf
|
🐛 修复暗色主题下存储管理区域的样式冲突
- 修复存储管理外层容器的白色渐变背景
- 修复本地存储和SFTP存储卡片的白色背景
- 修复上传进度条的白色背景
- 修复SFTP配置卡片的白色背景
- 统一使用CSS变量实现主题适配
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 23:14:27 +08:00 |
|
|
|
f12b9b7291
|
✨ 添加主题切换功能:支持暗色/亮色玻璃主题
功能说明:
- 管理员可在系统设置中配置全局默认主题
- 普通用户可在设置页面选择:跟随全局/暗色/亮色
- 分享页面自动继承分享者的主题偏好
- 主题设置实时保存,刷新后保持
技术实现:
- 后端:数据库添加theme_preference字段,新增主题API
- 前端:CSS变量实现主题切换,localStorage缓存避免闪烁
- 分享页:加载时获取分享者主题设置
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 23:02:48 +08:00 |
|
|
|
138bda9ae5
|
🎨 完善暗色主题:修复右键菜单、分享页面等
- 修复右键菜单白色背景问题(改为暗色玻璃效果)
- 修复分享成功链接不可见问题(添加绿色高亮)
- 修复媒体预览器白色背景
- 完全重写share.html为暗色主题(与主应用风格统一)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 22:51:24 +08:00 |
|
|
|
accccf261d
|
🕐 修复系统日志时区问题
- 日志写入时使用 datetime('now', 'localtime') 替代 CURRENT_TIMESTAMP
- 日志统计和清理查询也使用本地时间
- 解决日志时间比实际时间慢8小时的问题(UTC → 北京时间)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 22:20:33 +08:00 |
|
|
|
3e2a497cd4
|
🎨 将app.html全面改为暗色主题
- 添加CSS变量系统(背景色、边框色、文字颜色、强调色)
- 页面背景改为深色渐变效果
- 卡片、弹窗使用毛玻璃效果(backdrop-filter blur)
- 导航栏改为暗色玻璃样式
- 表单、按钮、表格全部适配暗色主题
- 添加自定义滚动条样式
- 统一警告/成功/错误提示框为半透明风格
- 全局替换浅色背景和文字颜色
与index.html保持一致的暗色毛玻璃设计风格
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 22:16:28 +08:00 |
|
|
|
dc076e7cc6
|
feat(ui): 重新设计首页为暗色玻璃态风格
新设计特点:
- 暗色主题 + 动态渐变光斑背景
- 玻璃态卡片和导航栏效果
- 简洁两栏布局(文案+功能卡片)
- 网格背景增加科技感
- 固定底部技术栈展示
- 完整响应式适配
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 21:22:14 +08:00 |
|
|
|
0d983c67e3
|
feat(install): 添加数据库自动迁移功能
更新和修复模式会自动检测并迁移旧数据库:
- 检测 backend/ftp-manager.db(旧路径)
- 自动迁移到 backend/data/database.db(新路径)
- 同时迁移 journal/wal/shm 文件
- 新旧数据库同时存在时警告用户
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 21:08:14 +08:00 |
|
|
|
ab61582487
|
fix(database): 读取环境变量DATABASE_PATH而非硬编码路径
之前硬编码为 ftp-manager.db,导致 .env 中的 DATABASE_PATH 无效。
修复:
- 读取 DATABASE_PATH 环境变量
- 默认路径改为 ./data/database.db
- 自动创建数据库目录
- 启动时打印数据库路径便于确认
⚠️ 升级注意:旧用户需要迁移数据库文件:
mv backend/ftp-manager.db backend/data/database.db
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 21:07:12 +08:00 |
|
|
|
c411ffac19
|
fix(admin): 调整角色列宽度防止换行
|
2025-11-27 20:52:31 +08:00 |
|
|
|
599fa2c550
|
feat(admin): 用户列表添加角色列
- 新增"角色"列,显示"管理员"或"用户"标签
- 管理员显示紫色渐变背景+皇冠图标
- 普通用户显示灰色背景+用户图标
- 调整列宽适配新增列
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 20:47:47 +08:00 |
|
|
|
6b38696eec
|
fix(security): 修复邮箱验证绕过漏洞
之前的迁移脚本会在每次服务启动时将所有 is_verified=0 的用户
自动设为已验证,导致攻击者可以用假邮箱注册后等待服务重启绕过验证。
修复方案:仅将 is_verified IS NULL 且 verification_token IS NULL 的
用户设为已验证(这些是邮箱验证功能上线前注册的老用户)。
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 20:35:01 +08:00 |
|
|
|
4f29bbe631
|
feat(admin): 管理员页面改为标签页模式
- 添加5个标签页:概览、设置、监控、用户、工具
- 概览:调试模式开关、服务器存储统计
- 设置:系统设置、SMTP邮件配置
- 监控:健康检测、系统日志
- 用户:用户管理列表
- 工具:上传工具管理
优化管理员页面布局,减少滚动,提升使用体验
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 20:31:26 +08:00 |
|
|
|
3dbd545f6b
|
fix(install): 修复更新/修复模式自动补充TRUST_PROXY配置
- 在 update_patch_env 中添加 TRUST_PROXY 检查和自动补充
- 修复模式(repair_main)现在也会调用 update_patch_env
- 更新 .env.example 添加 TRUST_PROXY 配置说明
- 更新修复模式的提示信息
解决使用Nginx反向代理时HTTPS检测失败的问题
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 20:13:37 +08:00 |
|
|
|
c3bc58a88b
|
feat(admin): 添加系统日志功能
## 新功能
1. **系统日志数据库**
- 新增 system_logs 表
- 支持日志级别:debug/info/warn/error
- 支持日志分类:auth/user/file/share/system/security
- 记录用户ID、用户名、IP地址、User-Agent
2. **日志记录**
- 用户注册成功/失败
- 用户登录成功/失败(密码错误)
- 系统操作(日志清理等)
3. **管理员API**
- GET /api/admin/logs - 查询日志(支持分页和筛选)
- GET /api/admin/logs/stats - 获取日志统计
- POST /api/admin/logs/cleanup - 清理旧日志
4. **前端界面**
- 日志列表展示(时间、级别、分类、内容、用户、IP)
- 筛选功能(级别、分类、关键词搜索)
- 分页导航
- 清理旧日志功能
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 19:54:46 +08:00 |
|
|
|
15ea15518c
|
fix(security): 修复信任代理和HTTPS检测的安全漏洞
## 问题修复
1. **trust proxy 配置安全加固**
- 默认改为 false(不信任任何代理)
- 支持多种安全配置:数字跳数、loopback、IP/CIDR段
- 当配置为 true 时输出安全警告
2. **HTTPS 检测基于可信代理链**
- 使用 req.secure 替代直接读取 x-forwarded-proto
- Express 会根据 trust proxy 配置判断是否采信代理头
- 防止客户端伪造协议头绕过 HTTPS 强制
3. **客户端 IP 获取安全加固**
- 使用 req.ip 替代直接读取 X-Forwarded-For
- Express 会根据 trust proxy 配置正确处理代理链
- 防止客户端伪造 IP 绕过限流
4. **健康检测增加安全警告**
- trust proxy = true 时标记为严重安全问题
- 提示管理员配置更安全的代理信任策略
5. **安装脚本优化**
- 默认配置 TRUST_PROXY=1(单层Nginx场景)
- 添加详细的配置说明和安全警告
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 19:42:25 +08:00 |
|
|
|
1dde17bb04
|
feat(admin): 添加系统健康检测功能
新增管理员健康检测面板,可检测以下配置项:
- 安全配置:JWT密钥、CORS、HTTPS、管理员账号、登录防爆破
- 服务状态:SMTP邮件、数据库连接、存储目录
- 运行配置:反向代理支持、Node环境
修改文件:
- backend/auth.js: 新增 isJwtSecretSecure() 函数
- backend/server.js: 新增 /api/admin/health-check API
- frontend/app.js: 新增健康检测数据和方法
- frontend/app.html: 新增健康检测UI界面
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 19:37:42 +08:00 |
|
|
|
d2aa115b5b
|
fix: SFTP下载使用新窗口打开直链
- app.js downloadFile: SFTP有直链时用window.open新窗口打开
- share.html downloadFile: 分享页面同样处理
- 本地存储下载保持原有方式不变
- 解决HTTPS页面下载HTTP直链的Mixed Content问题
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 15:24:20 +08:00 |
|
|
|
482a610420
|
Revert "fix: 修复HTTPS页面下载HTTP直链的Mixed Content问题"
This reverts commit a4c94b1f68.
|
2025-11-27 15:20:11 +08:00 |
|
|
|
a4c94b1f68
|
fix: 修复HTTPS页面下载HTTP直链的Mixed Content问题
- downloadFile: 检测Mixed Content自动降级到后端代理下载
- getMediaUrl: 媒体预览同样处理Mixed Content
- 当HTTPS页面遇到HTTP直链时,自动使用服务器代理
- 添加Toast提示用户正在使用代理下载
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 14:59:09 +08:00 |
|
|
|
1b7585d54a
|
fix(security): 完善SSRF防护的IP地址检查
- 完整IPv6私有地址检查:fc00::/7, fe80::/10, ff00::/8
- 添加云服务元数据地址检查:169.254.0.0/16
- 添加运营商级NAT地址检查:100.64.0.0/10
- 支持IPv4映射的IPv6地址递归检查
- 使用正则表达式优化172.16.0.0/12检查
- 代码结构更清晰,按IPv4/IPv6分类处理
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 14:56:42 +08:00 |
|
|
|
6305129e4f
|
chore: 更新app.js版本号强制刷新缓存
|
2025-11-27 13:47:37 +08:00 |
|
|
|
ffed82a55c
|
fix: 修复token过期后仍显示已登录状态的问题
- 页面加载时先向服务器验证token是否有效
- 添加axios响应拦截器,任何API返回401时自动登出
- 新增handleTokenExpired方法统一处理token失效
- token失效时显示Toast提示用户重新登录
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 13:43:11 +08:00 |
|
|
|
4f9b281039
|
feat: 添加SFTP空间使用统计功能
- 新增 /api/user/sftp-usage API,递归统计SFTP服务器空间使用情况
- 返回总使用空间、文件数、文件夹数
- 在设置页面显示SFTP空间统计信息
- 支持手动刷新统计数据
- 适配"仅SFTP"和"用户可选"两种权限模式的UI
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-27 13:39:51 +08:00 |
|
|
|
86ed1f4040
|
🔧 优化大文件上传支持
前端改进:
- 添加axios上传请求30分钟超时配置
Nginx改进:
- 增加代理超时时间到30分钟(1800秒)
- 添加 proxy_request_buffering off 避免大文件缓存到磁盘
- 添加 proxy_buffering off 禁用响应缓冲
- 优化 client_body_buffer_size
修复 ERR_HTTP2_PING_FAILED / Network Error 问题
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-25 12:24:49 +08:00 |
|
|
|
b188679f19
|
🐛 修复邮箱验证链接无效的问题
- 修复 UserDB.create() 中 verification_token 未哈希存储的bug
- 注册时的token现在会进行SHA256哈希,与验证时的逻辑保持一致
- 解决"无效或已过期的验证链接"错误
问题原因:注册时存储原文token,验证时用哈希后的token匹配,导致永远匹配不上
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-25 12:21:11 +08:00 |
|
|
|
3824f1ab82
|
🗑️ 移除不需要的文件
- 删除 docker-compose.yml
- 删除 restore-data.sh
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-25 11:50:04 +08:00 |
|
|
|
1943fea2e6
|
🐛 修复本地存储文件删除失败的问题
问题:sanitizeInput 函数将 / 转义为 /,导致文件路径错误
修复:从 XSS 过滤中移除对 / 的转义,因为它是路径分隔符的合法字符
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-25 11:44:51 +08:00 |
|
|
|
2fb2321750
|
🔒 修复分享列表接口的目录遍历漏洞
- 在 /api/share/:code/list 增加路径规范化与范围校验
- 使用 path.posix.normalize 处理 subPath,阻断 ../ 遍历攻击
- 调用 isPathWithinShare 验证请求路径在分享范围内
- 统一使用安全的 requestedPath 进行存储访问和直链生成
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-25 11:10:48 +08:00 |
|
|
|
3045c354f4
|
✨ 优化上传体验:上传前检查文件大小限制
问题:原来文件上传完成后才提示超过大小限制,浪费用户时间
修复:
- 后端:添加 /api/config 公开接口返回上传大小限制
- 前端:页面加载时获取配置
- 前端:uploadFile 函数开始时检查文件大小,超限立即提示
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-25 10:46:10 +08:00 |
|
|
|
93050a23d9
|
🎨 优化管理员系统设置页面布局
在"最大上传大小"设置旁边添加保存按钮,使其更明显
添加提示:修改后需要重启服务才能生效
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-25 10:39:05 +08:00 |
|
|
|
d7a0e8cb9f
|
🐛 修复页面刷新时短暂显示混乱UI的问题
使用 Vue 的 v-cloak 指令,在 Vue 初始化完成前隐藏页面内容,
避免用户看到原始模板标记(FOUC问题)
- app.html: 添加 v-cloak
- share.html: 添加 v-cloak
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-25 10:30:50 +08:00 |
|
|
|
76f4b772a9
|
🎨 修复通知和按钮显示问题
1. Toast通知改为只显示最新一条,避免多条同时出现
2. 修复首页"已有账号"按钮在渐变背景上看不清的问题
- 使用白色边框和文字
- 添加半透明背景和模糊效果
- 移动端也能清晰显示
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-25 10:27:14 +08:00 |
|
|
|
406b93019c
|
🐛 修复管理员存储统计磁盘容量显示为0的问题
- 将存储目录路径从 local-storage 改为 storage,与 storage.js 保持一致
- 添加目录不存在时自动创建的逻辑
- 支持 STORAGE_ROOT 环境变量配置
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-25 09:57:06 +08:00 |
|
|
|
474c8fe9b5
|
🔒 安全加固:修复多个中高危漏洞
修复内容:
1. Host Header 注入 - 添加 PUBLIC_BASE_URL 和 ALLOWED_HOSTS 白名单
2. API密钥暴力破解 - 添加速率限制(5次/小时,封锁24小时)
3. 路径遍历漏洞 - 增强路径验证,防止空字节注入和目录遍历
4. 令牌安全 - 密码重置和邮箱验证令牌使用SHA256哈希存储
5. 文件上传安全 - 阻止PHP/JSP/ASP等可执行脚本上传
6. IDOR防护 - 增强权限验证和安全日志
7. XSS防护 - 增强输入过滤,阻止javascript:等危险协议
8. 日志脱敏 - 移除验证码等敏感信息的日志输出
9. CSRF增强 - HTTPS环境使用strict模式Cookie
10. 邮箱枚举防护 - 密码重置统一返回消息
11. 速率限制 - 文件列表(60次/分)和上传(100次/小时)
配置说明:
- PUBLIC_BASE_URL: 必须配置,用于生成安全的邮件链接
- ALLOWED_HOSTS: 可选,Host头白名单
- COOKIE_SECURE=true: 生产环境必须开启
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-25 09:48:46 +08:00 |
|
|
|
47fe1466a4
|
🔒 修复中高危安全漏洞并增强文件安全验证
**关键安全修复:**
1. 修复弱随机数生成器(中危)
- 分享码生成从Math.random()改为crypto.randomBytes()
- 防止分享链接被预测或暴力猜测
2. 增强文件上传安全验证(中危)
- 新增isSafePathSegment()函数验证文件名
- 禁止路径遍历字符(..、/、\、控制字符)
- 添加上传路径规范化和安全检查
**功能改进:**
- 管理员界面显示用户邮箱验证状态
- 优化用户状态展示(已封禁/未激活/正常)
**安全影响:**
- 消除分享链接可预测性风险
- 防止文件上传路径遍历攻击
- 提升文件系统访问控制安全性
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-25 01:37:02 +08:00 |
|
|
|
3e4aae60cb
|
🔒 修复命令注入漏洞并增强HTTPS配置
**安全修复:**
- 修复命令执行语法错误(wmic命令字符串拼接)
- 添加驱动器字母验证防止命令注入(仅允许A-Z)
- 修复命令执行参数构造错误
**功能增强:**
- 新增ENFORCE_HTTPS环境变量(强制HTTPS访问)
- 更新.env.example添加ENFORCE_HTTPS配置说明
- 更新install.sh支持自动配置ENFORCE_HTTPS
- 更新脚本自动为现有.env补充ENFORCE_HTTPS配置
这些改进消除了命令注入风险并提供了更灵活的HTTPS策略控制。
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-25 01:17:32 +08:00 |
|
|
|
2ba254b1b5
|
🔒 增强安全防护:新增多层输入验证和XSS防护
- 添加用户名正则验证(支持中英文、数字、下划线等)
- 新增HTTPS强制访问选项(通过环境变量控制)
- 实现HTML转义函数防止邮件XSS注入
- 增强HTTP直链URL校验,仅允许http/https协议
- 添加buildHttpDownloadUrl安全构建下载URL
- 优化密码重置流程,增加账号状态验证
- 全面应用sanitizeHttpBaseUrl确保URL安全
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-25 00:52:56 +08:00 |
|
|
|
7b8b7afaf9
|
✨ 新增视图记忆功能,优化用户体验
功能新增:
- 自动记住用户上次停留的视图(文件/分享/设置/管理)
- 下次登录时恢复到上次的视图位置
- 登出时清理视图记录
安全优化:
- 新增 isViewAllowed() 方法,验证视图权限
- 防止普通用户越权访问管理后台
- 只记录合法且有权限的视图
代码优化:
- 简化登录后的视图跳转逻辑
- switchView() 支持 force 参数,用于强制刷新
- 统一视图切换和权限检查流程
用户体验提升:
- 减少重复导航,直达上次工作位置
- 管理员可以记住后台页面位置
- 更加智能和人性化
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-24 22:09:40 +08:00 |
|