本文由 FlintHub 开发文档归档发布。原始文档日期见标题前缀,来源:暂存20260913/docs/1.0.1待办清单 (2).md。
FlintHub V1.0.1 待办清单(审计遗留项)
来源:
审计结果20260821.md中标记为「P2(后续优化,本次不改)」的项。目标版本:V1.0.1。均为性能 / 架构优化,不涉及当前功能正确性与高危漏洞。
| # | 模块 | 事项 | 说明 |
|---|---|---|---|
| 1 | RateLimiter.php | IP 文件缓存 GC | 追加低概率(如 1%)过期文件清理或滚动窗口复用同一文件,防止 protected/rate_cache/ 堆积数十万小文件;长期建议迁移 Redis / APCu+文件混合 |
| 2 | layouts/main.php | 视图层 SQL 下沉 | 抽屉博客存档 /blog 聚合查询(GROUP BY strftime('%Y-%m', created_at))下沉到 Controller/Service,加 TTL 缓存后由控制器传入 View,避免全站每页触发全表统计 |
| 3 | assets/js/pow.js | PoW 计算 Web Worker 化 | solveNonce 同步循环(最高 1e7 次 SHA-256)阻塞 UI 主线程,高难度/低端设备卡顿;剥离到 Web Worker 或 requestAnimationFrame 分块异步计算 |
| 4 | index.php | 静态前置缓存优化 | 保证能命中前置缓存时避免重复 SQLite 会话检查 + 两次 config.php 磁盘 I/O;把会话判定延迟到真正缓存 miss 之后,零磁盘 I/O 优先 |
| 5 | Schema.php | 运行时 PRAGMA table_info | 动态升级路径反复 PRAGMA table_info 打断 SQLite 语句编译缓存;改为仅在显式 Upgrade 操作时触发,不放入常驻路径 |
| 6 | Schema.php | seedDefaults() 事务化 | 批量 INSERT OR IGNORE 以 beginTransaction()/commit() 包裹,合并为单次磁盘 I/O,避免并发 bootstrap() 触发 SQLITE_BUSY |
| 7 | PoW.php / ApiController::pow() | /api/pow 自身限流 | 为 /api/pow 增加 RateLimiter::hit('pow', ...),防止脚本批量刷挑战冲击 Session/DB |
完成以上任一项后,从本表移除并在次一个版本 changelog 记录。