[审计]FlintHub V1.0.1 待办清单(审计遗留项)

👑Lv.11 元老 🌞 骨干会员
2026-10-25 00:18:51

本文由 FlintHub 开发文档归档发布。原始文档日期见标题前缀,来源:暂存20260913/docs/1.0.1待办清单 (2).md。

FlintHub V1.0.1 待办清单(审计遗留项)

来源:审计结果20260821.md 中标记为「P2(后续优化,本次不改)」的项。

目标版本:V1.0.1。均为性能 / 架构优化,不涉及当前功能正确性与高危漏洞。

#模块事项说明
1RateLimiter.phpIP 文件缓存 GC追加低概率(如 1%)过期文件清理或滚动窗口复用同一文件,防止 protected/rate_cache/ 堆积数十万小文件;长期建议迁移 Redis / APCu+文件混合
2layouts/main.php视图层 SQL 下沉抽屉博客存档 /blog 聚合查询(GROUP BY strftime('%Y-%m', created_at))下沉到 Controller/Service,加 TTL 缓存后由控制器传入 View,避免全站每页触发全表统计
3assets/js/pow.jsPoW 计算 Web Worker 化solveNonce 同步循环(最高 1e7 次 SHA-256)阻塞 UI 主线程,高难度/低端设备卡顿;剥离到 Web Worker 或 requestAnimationFrame 分块异步计算
4index.php静态前置缓存优化保证能命中前置缓存时避免重复 SQLite 会话检查 + 两次 config.php 磁盘 I/O;把会话判定延迟到真正缓存 miss 之后,零磁盘 I/O 优先
5Schema.php运行时 PRAGMA table_info动态升级路径反复 PRAGMA table_info 打断 SQLite 语句编译缓存;改为仅在显式 Upgrade 操作时触发,不放入常驻路径
6Schema.phpseedDefaults() 事务化批量 INSERT OR IGNORE 以 beginTransaction()/commit() 包裹,合并为单次磁盘 I/O,避免并发 bootstrap() 触发 SQLITE_BUSY
7PoW.php / ApiController::pow()/api/pow 自身限流为 /api/pow 增加 RateLimiter::hit('pow', ...),防止脚本批量刷挑战冲击 Session/DB

完成以上任一项后,从本表移除并在次一个版本 changelog 记录。

轻量级、高性能、零 MySQL 依赖的PHP社区系统。
| Views 2 | Replies 0

All Replies (0)

No replies yet

Please Log in