|
|
5137addacc
|
Optimize scheduler status lookups
|
2026-01-06 15:58:23 +08:00 |
|
|
|
4c492122dd
|
feat: support announcement image upload
# Conflicts:
# database.py
# db/migrations.py
# routes/admin_api/core.py
# static/admin/.vite/manifest.json
# static/admin/assets/AnnouncementsPage-Btl9JP7M.js
# static/admin/assets/EmailPage-CwqlBGU2.js
# static/admin/assets/FeedbacksPage-B_qDNL3q.js
# static/admin/assets/LogsPage-DzdymdrQ.js
# static/admin/assets/ReportPage-Bp26gOA-.js
# static/admin/assets/SettingsPage-__r25pN8.js
# static/admin/assets/SystemPage-C1OfxrU-.js
# static/admin/assets/UsersPage-DhnABKcY.js
# static/admin/assets/email-By53DCWv.js
# static/admin/assets/email-ByiJ74rd.js
# static/admin/assets/email-DkWacopQ.js
# static/admin/assets/index-D5wU2pVd.js
# static/admin/assets/tasks-1acmkoIX.js
# static/admin/assets/update-DdQLVpC3.js
# static/admin/assets/users-B1w166uc.js
# static/admin/assets/users-CPJP5r-B.js
# static/admin/assets/users-CnIyvFWm.js
# static/admin/index.html
# static/app/.vite/manifest.json
# static/app/assets/AccountsPage-C48gJL8c.js
# static/app/assets/AccountsPage-D387XNsv.js
# static/app/assets/AccountsPage-DBJCAsJz.js
# static/app/assets/LoginPage-BgK_Vl6X.js
# static/app/assets/RegisterPage-CwADxWfe.js
# static/app/assets/ResetPasswordPage-CVfZX_5z.js
# static/app/assets/SchedulesPage-CWuZpJ5h.js
# static/app/assets/SchedulesPage-Dw-mXbG5.js
# static/app/assets/SchedulesPage-DwzGOBuc.js
# static/app/assets/ScreenshotsPage-C6vX2U3V.js
# static/app/assets/ScreenshotsPage-CreOSjVc.js
# static/app/assets/ScreenshotsPage-DuTeRzLR.js
# static/app/assets/VerifyResultPage-BzGlCgtE.js
# static/app/assets/VerifyResultPage-CN_nr4V6.js
# static/app/assets/VerifyResultPage-CNbQc83z.js
# static/app/assets/accounts-BFaVMUve.js
# static/app/assets/accounts-BYq3lLev.js
# static/app/assets/accounts-Bc9j2moH.js
# static/app/assets/auth-Dk_ApO4B.js
# static/app/assets/index-BIng7uZJ.css
# static/app/assets/index-CDxVo_1Z.js
# static/app/index.html
|
2026-01-06 12:15:16 +08:00 |
|
|
|
7cf39f80bc
|
fix: 兼容旧浏览器后台与截图开关
|
2025-12-31 19:04:42 +08:00 |
|
|
|
89f3fd9759
|
feat: 安全增强 + 删除密码重置申请功能 + 登录提醒开关
安全增强:
- 新增 SSRF、XXE、模板注入、敏感路径探测检测规则
- security/constants.py: 添加新的威胁类型和检测模式
- security/threat_detector.py: 实现新检测逻辑
删除密码重置申请功能:
- 移除 /api/password_resets 相关API
- 删除 password_reset_requests 数据库表
- 前端移除密码重置申请页面和菜单
- 用户只能通过邮��找回密码,未绑定邮箱需联系管理员
登录提醒全局开关:
- email_service.py: 添加 login_alert_enabled 字段
- routes/api_auth.py: 检查开关状态再发送登录提醒
- EmailPage.vue: 添加新设备登录提醒开关
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-27 12:08:36 +08:00 |
|
|
|
46253337eb
|
feat: 实现完整安全防护系统
Phase 1 - 威胁检测引擎:
- security/threat_detector.py: JNDI/SQL/XSS/路径遍历/命令注入检测
- security/constants.py: 威胁检测规则和评分常量
- 数据库表: threat_events, ip_risk_scores, user_risk_scores, ip_blacklist
Phase 2 - 风险评分与黑名单:
- security/risk_scorer.py: IP/用户风险评分引擎,支持分数衰减
- security/blacklist.py: 黑名单管理,自动封禁规则
Phase 3 - 响应策略:
- security/honeypot.py: 蜜罐响应生成器
- security/response_handler.py: 渐进式响应策略
Phase 4 - 集成:
- security/middleware.py: Flask安全中间件
- routes/admin_api/security.py: 管理后台安全仪表板API
- 36个测试用例全部通过
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-27 01:28:38 +08:00 |
|
|
|
e3b0c35da6
|
Harden auth risk controls and admin reauth
|
2025-12-26 21:07:47 +08:00 |
|
|
|
9aa28f5b9e
|
添加报表页面,更新用户管理和注册功能
|
2025-12-15 21:39:32 +08:00 |
|
|
|
a346509a5f
|
同步更新:重构路由、服务模块,更新前端构建
|
2025-12-14 21:47:46 +08:00 |
|
|
|
a9c8aac48f
|
fix: 账号页闪烁/浏览类型/截图复制/时区统一
|
2025-12-14 11:30:49 +08:00 |
|
|
|
7015de0055
|
feat: 添加公告功能
|
2025-12-13 18:40:42 +08:00 |
|
|
|
42cc86e290
|
fix: 修复browser_installer.py语法错误,同步服务器代码
- 修复browser_installer.py顶部错误的import语句
- 移除browser_installer.py中未正确实现的_cleanup_zombie_processes方法
- 恢复playwright_automation.py中的SIGKILL(服务器版本)
- 同步database.py和email_service.py的最新代码
注意:内存占用从50MB增加到142MB是正常的,因为:
1. 4个浏览器Worker线程(按需模式)占用基础内存
2. 新增的清理代码和SIGCHLD处理器占用少量内存
3. 当前内存使用在正常范围内
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-13 03:35:12 +08:00 |
|
Yu Yon
|
b15e6f2af0
|
修复高优先级安全和稳定性问题
1. app.py:
- 添加user_semaphores_lock线程锁,修复get_user_semaphore竞态条件
- 将9处裸except:改为except Exception:或具体异常类型
2. database.py:
- 将3处裸except:改为except Exception:
3. email_service.py:
- 添加_smtp_config_lock线程锁
- 修复daily_sent计数竞态条件:获取配置时预增,失败时回退
- _get_available_smtp_config和_get_next_available_smtp_config使用锁保护
🤖 Generated with Claude Code
|
2025-12-12 15:04:58 +08:00 |
|
Yu Yon
|
1072e90070
|
添加定时任务随机时间执行功能;修复手动执行任务不发送邮件通知
|
2025-12-12 10:12:27 +08:00 |
|
|
|
79cf3c2f30
|
fix: 修复邮箱绑定验证错误及多项改进
1. 修复email_verified字段缺失导致的500错误
2. 将邮件主题从"知识管理平台"改为"自动化学习"
3. 增大验证码字体(28->42)和图片尺寸(120x40->160x60)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-11 22:45:44 +08:00 |
|
|
|
29d4bdfbcb
|
feat: 添加邮件功能第五阶段 - 用户邮箱绑定
1. 添加邮箱绑定验证邮件模板 (templates/email/bind_email.html)
2. 在email_service.py中添加:
- send_bind_email_verification() 发送绑定验证邮件
- verify_bind_email_token() 验证绑定Token
3. 在database.py中添加:
- update_user_email() 更新用户邮箱
4. 在app.py中添加API:
- GET /api/user/email - 获取用户邮箱信息
- POST /api/user/bind-email - 发送绑定验证邮件
- GET /api/verify-bind-email/<token> - 验证绑定Token
- POST /api/user/unbind-email - 解绑邮箱
5. 更新templates/index.html:
- 将"修改密码"弹窗改为"个人设置"
- 添加邮箱绑定/解绑功能UI
- 显示邮箱状态(未绑定/待验证/已验证)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-11 22:20:29 +08:00 |
|
|
|
de8edcb3a6
|
feat: 添加邮件功能第二阶段 - 注册邮箱验证
实现注册时的邮箱验证功能:
- 修改注册API支持邮箱验证流程
- 新增邮箱验证API (/api/verify-email/<token>)
- 新增重发验证邮件API (/api/resend-verify-email)
- 新增邮箱验证状态查询API (/api/email/verify-status)
新增文件:
- templates/email/register.html - 注册验证邮件模板
- templates/verify_success.html - 验证成功页面
- templates/verify_failed.html - 验证失败页面
修改文件:
- email_service.py - 添加发送注册验证邮件函数
- app.py - 添加邮箱验证相关API
- database.py - 添加get_user_by_email函数
- app_config.py - 添加BASE_URL配置
- templates/register.html - 支持邮箱必填切换
- templates/login.html - 添加重发验证邮件功能
- templates/admin.html - 添加注册验证开关和BASE_URL设置
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-11 21:51:07 +08:00 |
|
|
|
2e4b64dcb2
|
修复37项安全漏洞和Bug
高危修复:
- app.py: 添加ip_rate_limit_lock线程锁保护IP限流字典
- app.py: 添加validate_ip_port()验证代理IP/端口范围
- database.py: SQL字段名白名单验证防止注入
- playwright_automation.py: 改进浏览器进程强制清理逻辑
中危修复:
- database.py: 统一时区处理函数get_cst_now()
- database.py: 消除循环导入,移动app_security导入到顶部
- playwright_automation.py: 所有bare except改为except Exception
- app_config.py: dotenv导入失败警告+安全配置检查
- db_pool.py: 添加详细异常堆栈日志
- app_security.py: 用户名过滤零宽字符
- database.py: delete_old_task_logs分批删除避免锁表
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-11 19:35:29 +08:00 |
|
|
|
de51e1b7c7
|
修复多项安全漏洞和Bug
1. 安全修复:
- 修复密码重置接口用户枚举漏洞,统一返回消息防止信息泄露
- 统一密码强度验证为8位以上且包含字母和数字
- 添加第三方账号密码加密存储(Fernet对称加密)
- 修复默认管理员弱密码问题,改用随机生成强密码
- 修复管理员回复XSS漏洞,添加HTML转义
- 将MD5哈希替换为SHA256
2. 并发Bug修复:
- 修复日志缓存竞态条件,添加锁保护
- 修复截图信号量配置变更后不生效问题
3. 其他改进:
- 添加API参数类型验证和边界检查
- 新增crypto_utils.py加密工具模块
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-11 19:14:14 +08:00 |
|
|
|
b9edc4aaa2
|
修复多项安全漏洞
安全修复清单:
1. 验证码改为图片方式返回,防止明文泄露
2. CORS配置从环境变量读取,不再使用通配符"*"
3. VIP API添加@admin_required装饰器,统一认证
4. 用户登录统一错误消息,防止用户枚举
5. IP限流不再信任X-Forwarded-For头,防止伪造绕过
6. 密码强度要求提升(8位+字母+数字)
7. 日志不���记录完整session/cookie内容,防止敏感信息泄露
8. XSS防护:日志输出和Bug反馈内容转义HTML
9. SQL注入防护:LIKE查询参数转义
10. 路径遍历防护:截图目录白名单验证
11. 验证码重放防护:验证前删除验证码
12. 数据库连接池健康检查
13. 正则DoS防护:限制数字匹配长度
14. Account类密码私有化,__repr__不暴露密码
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-11 17:53:48 +08:00 |
|
|
|
d811fc7c56
|
✨ 添加注册自动审核功能
- 系统配置新增:自动审核开关、每小时注册限制、赠送VIP天数
- 数据库:添加 auto_approve_enabled, auto_approve_hourly_limit, auto_approve_vip_days 字段
- 后端API:支持保存和读取自动审核配置
- 管理后台:新增注册自动审核配置区域(绿色背景)
- 注册逻辑:支持自动审核通过并赠送VIP
功能说明:
1. 启用自动审核后,新用户注册自动通过,无需管理员审批
2. 每小时注册限制防止恶意注册
3. 可配置注册赠送VIP天数(设为0则不赠送)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-10 21:42:28 +08:00 |
|
|
|
841ac94c4b
|
🔧 完善system_config初始化字段
- INSERT 语句补全所有字段,确保与 CREATE TABLE 定义一致
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-10 21:03:11 +08:00 |
|
|
|
fb56426a8e
|
🐛 修复截图并发数初始化遗漏字段
- 初始化system_config时添加max_screenshot_concurrent字段
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-10 20:59:03 +08:00 |
|
|
|
32a29e61e9
|
✨ 优化浏览器池和并发配置
1. 浏览器池改为按需启动模式
- 启动时不创建浏览器,有截图任务时才启动
- 空闲5分钟后自动关闭浏览器释放资源
2. 修复截图并发数保存问题
- 修复database.py中缺少保存max_screenshot_concurrent的代码
3. 去掉并发数上限限制
- 管理员可自由设置并发数,不再限制1-20/1-5
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-10 20:31:49 +08:00 |
|
|
|
7954aeaf59
|
✨ 添加定时任务日志管理功能
- 添加用户清空日志按钮
- 添加30天自动清理定时任务执行日志
- 简化日志API代码,移除调试日志
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-10 20:20:44 +08:00 |
|
root
|
bd91d456f6
|
强化定时任务日志查询的错误处理
添加多层错误保护:
1. 在整个查询函数外层添加try-except
2. 在每行数据处理时也添加try-except
3. 出错时返回空数组而不是抛出异常
4. 打印详细的错误信息和堆栈跟踪
这样即使数据有问题,也不会导致500错误,
而是会正常返回空列表并在日志中显示具体错误。
位置: database.py 第1661-1695行
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-10 16:47:00 +08:00 |
|
root
|
b284fb9d1b
|
修复定时任务日志500错误
问题原因:
- SQL查询中使用AS别名在SQLite Row对象转换时可能失败
修复方案:
- 改为查询所有字段后在Python中进行字段映射
- 添加字段映射:execute_time → created_at
- 添加字段映射:success_accounts → success_count
- 添加字段映射:failed_accounts → failed_count
- 添加字段映射:duration_seconds → duration
位置: database.py 第1661-1683行
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-10 16:24:10 +08:00 |
|
root
|
726e0d01bf
|
修复定时任务日志和增强功能
1. 修复定时任务日志字段映射问题
- 修正execute_time → created_at
- 修正success_accounts → success_count
- 修正failed_accounts → failed_count
- 修正duration_seconds → duration
- 位置: database.py 第1661-1686行
2. 添加定时任务调试日志
- 显示当前检查时间和任务匹配情况
- 帮助诊断定时任务不执行问题
- 位置: app.py 第2869-2875行
3. 新增VIP权限对比表格
- 在VIP信息弹窗中添加权限对比
- 对比普通用户和VIP用户的6项权限
- 位置: templates/index.html 第549-593行
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-10 16:16:45 +08:00 |
|
Yu Yon
|
8fd6923453
|
修复所有bug并添加新功能
- 修复添加账号按钮无反应问题
- 添加账号备注字段(可选)
- 添加账号设置按钮(修改密码/备注)
- 修复用户反馈���能
- 添加定时任务执行日志
- 修复容器重启后账号加载问题
- 修复所有JavaScript语法错误
- 优化账号加载机制(4层保障)
🤖 Generated with Claude Code
|
2025-12-10 11:19:16 +08:00 |
|
Yu Yon
|
1723e35fbc
|
Initial commit: 知识管理平台
主要功能:
- 多用户管理系统
- 浏览器自动化(Playwright)
- 任务编排和执行
- Docker容器化部署
- 数据持久化和日志管理
技术栈:
- Flask 3.0.0
- Playwright 1.40.0
- SQLite with connection pooling
- Docker + Docker Compose
部署说明详见README.md
|
2025-11-16 19:03:07 +08:00 |
|