置顶 [公告] 官方插件在线审计工具上线测试。

👑Lv.11 元老 🌞 骨干会员
2026-10-18 11:58:59

做完的插件,打算在官方投稿发布,请用这个工具提前检测一下。
https://www.flinthub.top/plugin-audit

如果问题多,可以将检测报告复制到你的ai工具,让其核查并修复。


它会检查什么

装不上 / 一访问就 500
包结构、目录名、路径安全、PHP 语法、命名空间可加载、漏 use

本机好好的,上线才炸
内联 <script> / <style> / on* 属性、 钩子里的 $this-> —— 本机不设 CSP、不重复 include,测不出来

不报错的静默失效
三语字典的键集合 / 键序 / 代码里引用的键、hooks 指向的文件与钩子名、 icon / category 是否在核心白名单内

规范卫生债
静态 style、BOM / CRLF / 编码、全角标点吞变量名、调试残留、 版本号多处不一致、直接查核心表

CRITICAL 必须修复(5 条)
FH-PKG-001 包结构必须 plugins/<name>/ 单根(含 Plugin.php + plugin.json)
FH-PKG-002 插件目录名必须匹配 ^[a-z0-9_]{2,40}$
FH-PKG-003 包内路径安全(无 .. / 反斜杠 / 盘符 / 空字节 / 全角斜杠 / bidi 控制符)
FH-SYN-001 包内 PHP 文件必须语法正确(子进程 token_get_all TOKEN_PARSE,带超时)
FH-NS-001 命名空间必须能被插件自动加载器解析(复刻 Autoloader 三条候选路径)

MAJOR 生产会失效(7 条)
FH-INL-001 无内联 <script> / <style> 块(src 引用与 JSON-LD 数据岛豁免)
FH-INL-002 无内联 on* 事件属性(addEventListener + data-* 传参)
FH-I18N-001 三语字典键集合零差异 + 键序一致(token 硬解,不 include)
FH-USE-001 同命名空间下调用未 import 的 app 类(跑到那行才 Class not found)
FH-SEC-001 红线函数(eval / unserialize / extract / assert / create_function / preg_replace+e)
FH-SEC-002 写操作必须「先登录后 CSRF」(且 CSRF 不能晚于读参数)
FH-I18N-002 代码里字面量引用的语言键必须在字典里存在(缺键会显示裸键名)

MINOR 规范卫生(9 条)
FH-ENC-001 文本文件编码:0 BOM / 0 CRLF / 全 UTF-8
FH-ENC-002 PHP 变量名不得含非 ASCII 字节(全角标点会被吞进变量名)
FH-ENC-003 无调试残留(var_dump / print_r / console.log / debugger / [DBG])
FH-INL-003 无静态 style="" 属性(CSS 变量注入豁免)
FH-META-001 plugin.json 必填字段完整 + hooks 指向真实存在的文件
FH-META-002 plugin.json 的 category 必须在核心 10 类内
FH-META-003 plugin.json 的 icon 必须在核心图标表内(否则渲染成问号)
FH-META-004 hooks 声明的钩子名必须在核心钩子表内(写错就永不触发)
FH-META-005 版本号多处一致(plugin.json / 说明.md / Plugin.php / assets)

INFO 提示(3 条)
FH-DB-001 插件直接查询核心表(跨层依赖,建议确认)
FH-HOOK-001 钩子文件里出现 $this->(闭包作用域下不可用)
FH-HOOK-002 钩子文件里声明顶层函数/类(重复 include 会 Cannot redeclare)
最后由 flinthub 于 2026-10-18 12:00 编辑
轻量级、高性能、零 MySQL 依赖的PHP社区系统。
| 浏览 12 次 | 回复 1 次

全部回复 (1)

🌴Lv.5 高级 🌏 正式会员
2026-10-18 12:42:22
优化了好几天,终于把内存降下来了
知识,奉行,知行合一
#1 楼

请 登录