4 Commits
Author SHA1 Message Date
HYC Fixer abdbec85a4 复查修复(四): 独立审查发现的问题
- S1/S2: 会话锁改 RLock(持锁可重入调 _save_sessions);cookie 时间戳改整数+解析兼容(会话创建/验证往返已实测)
- M1: api_login 接入 verify_user(账号锁定/失败计数生效),DB 无用户时才回退 config 凭据
- M3+L5: handler _do_auth 统一入口加 IP 白名单检查;未知 auth_type 返回 401
- M4+L10: metrics 与无版本 /api/admin/ 加入受保护端点
- M6: debug 日志敏感头脱敏;main.py 不再打印 token 前缀
- M7: auth_token.txt / auth_sessions.json chmod 600
- M9: verify_user 统一错误消息防用户枚举
- M10: AdminAPI 复用共享 APIAuthManager(修复会话状态分裂)
- L7: check_auth 大小写不敏感匹配(防 /API/.. 大写绕过)
- L8: token_expires_at 显式 is not None 判断
- L11: verify_password 对非 bcrypt 哈希回退 PBKDF2(重写,修复 ValueError 分支不落回退的问题)
2026-09-02 00:45:01 +08:00
HYC Fixer dfae749612 P2: 清理与一致性
- CLI: --preset 实际生效;--directory-listing/--enable-stats/--enable-*/--ignore-hidden 支持 true/false(修复 type=bool 陷阱),未显式传入时不再覆盖 settings.json
- 版本号统一 v2.3(settings.json/config.py/v1/v2/Dockerfile)
- 移除硬编码 /tmp/pypi_debug.log 写文件;v2 裸 except 改记录错误返回 500
- webhook id 非法输入返回 400;下载趋势 timedelta 导入提升修复 NameError
- 打包模式 auth_token 写入 exe 目录(不再写入 _MEIPASS)
- README 修正: 线程池架构、pyinstaller 构建方式
- mirrors/__init__.py ' Quay.io' 笔误;chunked 响应去掉 Content-Length;docs/ui realpath 边界
- SQLite WAL+busy_timeout;下载计数原子 UPDATE
- requirements 移除未使用的 cachetools/apscheduler
2026-08-30 12:25:26 +08:00
HYC Fixer 2a899c411e P0-C: 安全修复
- 会话文件移出 web 根(data/ 目录),auth_secret 启动自动生成并持久化(0600)
- cookie 签名改 HMAC-SHA256 + compare_digest;会话表加锁 + 原子写
- serve_path 增加敏感文件黑名单(纵深防御)
- PyPI: 移除 ?url= 任意 URL 回退(SSRF),限制 scheme,缓存键防路径穿越
- v2 文件元数据/版本/缩略图端点全部加 is_safe_path;缩略图尺寸与像素上限
- api-docs/generate 限写 docs 目录;user/password 强制旧密码;GET /api/v2/config 脱敏
- 目录列表/错误页 HTML 转义(防存储型 XSS);Content-Disposition 文件名清洗
- 信号处理改优雅退出(移除 os._exit);启动时默认凭据安全警告
2026-08-30 12:20:17 +08:00
HYC Fixer a8e773839b Baseline: pr1 HYC下载站 v2.3 before security/functional fixes 2026-08-30 12:12:58 +08:00