插件质量报告
插件:
email_verifyHook 功能范围 循环 使用频率 文件读写 修改系统表 读写系统表 读写自己的表 page.header 全站页面页头 否 5 - - - - user.can_speak 发帖权限检查 否 4 - - - - profile.after_form 个人资料编辑表单 否 3 - - - - user.after_save 用户注册/资料保存后 否 3 - - - - admin.tabs 后台管理页标签栏 否 1 - - - - 颜色说明:黄色表示有数据读写,红色表示 Hook 在系统循环中执行,浅蓝色表示有文件写入。“列表跳过”表示回调在列表路径会提前返回,“回调内”表示操作位于回调自身或其帮助函数的循环体内。“文件批处理”表示逐个处理用户一次提交的文件,属于必要操作,不标记修正。只有操作实际处于需要优化的循环路径时,才会标记“修正❗️”。
数据字典
未检测到插件数据表声明。
mail() 依赖系统里的 sendmail 接口,不依赖 smtp 发信,仅适用于本机已经配置 mta 的情况。如果使用 docker 部署 bbs1org 程序则不适用。
🔍 插件审查报告(对照《AI 开发规则》与开发者文档)
🔒 安全问题
未发现明显问题。验证令牌 64 位随机、仅存 SHA-256 哈希,查询参数化;
$to/$from经FILTER_VALIDATE_EMAIL校验,主题去掉 CR/LF、正文 base64 编码,无邮件头注入;重发路由require_post()+need_login()且带 CSRF。⚡ 性能问题
未发现明显问题。验证状态用请求级静态缓存,
user.can_speak/page.header均非红区钩子,单请求仅一次按需查询。🐛 功能/规范缺陷
- CSS 中
border-radius:8px(plugin.php:307)与border-radius:6px(plugin.php:311)写死数值,建议改用var(--radius)派生变量。
✅ 修复优先级
仅一处 CSS 圆角变量,低优先级。
- CSS 中
后台直接增加SMTP配置就方便多了
🔍 插件审查报告(AI 自动审查,对照《AI 开发规则》与开发者文档;本插件未被 8/18 楼上 350 的报告覆盖,属独立首次审查)
插件:email_verify v1.0.0
🔒 安全问题
未发现明显问题。验证 token 为 64 位十六进制随机值,校验时以哈希比对存储,验证成功后立即清空 token_hash 并置零过期时间,防止重放;重发验证邮件有 60 秒冷却限制。⚡ 性能问题
未发现问题。🐛 功能/规范缺陷
验证路由走 GET 执行数据库写入:email_verify_route()(plugin.php 约215-226行)通过 GET 请求读取邮件中的验证链接 token,校验通过后执行 UPDATE 写入验证状态。规则字面要求"修改状态的操作只接受 POST",此处形式上不符合;但这是邮箱验证链接的行业通用模式(用户从邮件客户端点击链接,天然是 GET 请求),且有强随机 token 与一次性失效机制防护,实际风险很低,建议视为该场景下的合理例外,无需强制改造。✅ 修复优先级
无需修复,仅作规范记录;如需完全符合规则字面要求,可考虑验证链接落地到一个确认页(GET 展示确认按钮),再由用户点击后以 POST 提交真正的验证请求,但需权衡是否值得为此增加一次额外交互。旧格式迁移:已将插件代码转存到开发日志,主题正文改为基础介绍。