|
|
4400ded86a
|
fix: 修复截图只截取可见区域的问题
改为对iframe内容进行截图而不是主页面,这样full_page=True才能正确截取iframe内的完整内容。
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-14 16:04:36 +08:00 |
|
|
|
a9c8aac48f
|
fix: 账号页闪烁/浏览类型/截图复制/时区统一
|
2025-12-14 11:30:49 +08:00 |
|
|
|
d7d878dc08
|
fix: 内存溢出与任务调度优化
|
2025-12-13 17:40:36 +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
|
b905739515
|
fix: 修复内存泄漏和僵尸进程问题
- 添加SIGCHLD信号处理器自动回收僵尸子进程
- 定期清理函数增加僵尸进程回收
- 增加batch_task_screenshots超时清理(30分钟)
- 增加pending_random_schedules超时清理(2小时)
- 修复playwright_automation.py的_force_cleanup使用SIGTERM+waitpid
- browser_installer.py浏览器检测后添加僵尸进程清理
内存占用从111MB降至53MB,僵尸进程从6个降至0个
|
2025-12-12 23:42:30 +08:00 |
|
|
|
90f503518f
|
修复bug和清理调试代码
1. email_service.py: 删除未定义的log_email_send调用(send_email内部已记录日志)
2. app.py: 删除[DEBUG run_task]调试打印语句
3. playwright_automation.py: 删除[调试]诊断日志块
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-12 15:36:36 +08:00 |
|
|
|
7cfb76abf2
|
修复12项安全漏洞和代码质量问题
安全修复:
- 使用secrets替代random生成验证码,提升安全性
- 添加内存清理调度器,防止内存泄漏
- PIL缺失时返回503而非降级服务
- 改进会话安全配置,支持环境自动检测
- 密钥文件路径支持环境变量配置
Bug修复:
- 改进异常处理,不再吞掉SystemExit/KeyboardInterrupt
- 清理死代码(if False占位符)
- 改进浏览器资源释放逻辑,使用try-finally确保关闭
- 重构数据库连接池归还逻辑,修复竞态条件
- 添加安全的JSON解析方法,处理损坏数据
- 日志级别默认值改为INFO
- 提取魔法数字为可配置常量
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-11 20:00:19 +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 |
|
|
|
6a905909d9
|
修复关键安全漏洞(Bug #19和Bug #13)
修复的Bug:
- Bug #19: 路径遍历漏洞
- Bug #13: 浏览器上下文竞态条件
主要改进:
1. 路径遍历防护:
- /screenshots/<filename> 端点添加is_safe_path()验证
- /static/<path:filename> 端点添加is_safe_path()验证
- 防止攻击者通过../等序列访问系统文件
2. 浏览器资源并发保护:
- PlaywrightAutomation类添加_lock线程锁
- get_iframe_safe()方法使用锁保护main_page访问
- close()方法使用锁保护资源释放
- _cleanup_on_exit()使用非阻塞锁避免退出死锁
- 解决TOCTOU(Time-of-Check-Time-of-Use)竞态条件
影响:
- 防止路径遍历攻击,保护系统文件安全
- 防止多线程环境下的浏览器资源竞争
- 提升系统安全性和稳定性
受影响文件:
- app.py (路径验证)
- playwright_automation.py (线程锁)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-11 14:12:01 +08:00 |
|
|
|
114a4107bb
|
修复所有资源泄漏问题(P0级bug)
修复的Bug:
- Bug #21: Playwright浏览器实例泄漏
- Bug #22: 数据库连接泄漏(已由连接池解决)
- Bug #23: 截图文件句柄泄漏
- Bug #24: 线程资源未清理
- Bug #25: requests.Session对象泄漏
主要改进:
1. PlaywrightAutomation类:
- 添加atexit注册,确保进程退出时关闭浏览器
- 添加__enter__/__exit__支持context manager
- 添加_closed标志防止重复关闭
- 添加_cleanup_on_exit静默清理方法
2. APIBrowser类:
- 添加atexit注册,确保Session正确关闭
- 添加__enter__/__exit__支持context manager
- 添加_closed标志防止重复关闭
3. 截图功能增强:
- 使用临时文件机制
- 添加文件大小验证
- 失败时自动清理临时文件
- 确保不产生垃圾文件
4. 应用关闭清理:
- 添加cleanup_on_exit()函数
- 注册SIGINT/SIGTERM信号处理器
- 停止所有运行中的任务
- 等待线程优雅退出
- 关闭浏览器线程池
- 关闭数据库连接池
影响:
- 防止长期运行导致的内存泄漏
- 确保进程异常退出时正确清理资源
- 提升系统稳定性和可靠性
受影响文件:
- playwright_automation.py
- api_browser.py
- app.py
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
2025-12-11 13:48:06 +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 |
|