[puppet_posting]马甲发帖热
- bbs1org2026-08-03马甲发帖ID puppet_posting版本 1.1.2插件制作者 bbs1org免费89 行 / 4.1 KBHook / 后台页使用指定用户名发布主题或回帖,方便运营不同的社区角色。app/plugins/puppet_posting/plugin.php开发日志已有 3 条
个人独立维护项目。
淘帖专辑官方安装插件合集主楼 插件质量报告
插件:
puppet_postingHook 功能范围 循环 使用频率 文件读写 修改系统表 读写系统表 读写自己的表 reply.create_author 回帖发布前作者身份处理 否 3 - app_users app_users - topic.create_author 主题发布前作者身份处理 否 3 - app_users app_users - 颜色说明:黄色表示有数据读写,红色表示 Hook 在系统循环中执行,浅蓝色表示有文件写入。“列表跳过”表示回调在列表路径会提前返回,“回调内”表示操作位于回调自身或其帮助函数的循环体内。“文件批处理”表示逐个处理用户一次提交的文件,属于必要操作,不标记修正。只有操作实际处于需要优化的循环路径时,才会标记“修正❗️”。
数据字典
未检测到插件数据表声明。
- 1234567892026-08-13
- bbs1org2026-08-13
- 1234567892026-08-13
- bbs1org2026-08-13
- 1234567892026-08-13
- bbs1org2026-08-13
新建马甲用户后更新统计缓存
- 1234567892026-08-13
- bbs1org2026-08-13
- 1234567892026-08-13
- 1234567892026-08-13
- bbs1org2026-08-13
- 1234567892026-08-13
🔍 插件审查报告(对照《AI 开发规则》与开发者文档)
整体实现简洁,SQL 参数化、权限门槛(can_manage)与 @@ 指令解析正确,非管理员输入不受影响。以下为需改进项。
🔒 安全问题
plugin.php:6仅以can_manage()作为门槛,plugin.php:15-18对已存在用户名直接返回其 id,未排除站长(uid=1)或其他管理员,也无审计记录——任何有内容管理权限的用户都能以站内任意用户(含站长)身份发帖。建议禁止冒充超级管理员或权限不低于操作者的用户,并写入“操作者→被冒充者”审计信息。⚡ 性能问题
未发现明显问题。账号查询/创建为单条 SQL,无循环查询。
🐛 功能/规范缺陷
plugin.php:17-32:先one()查询再INSERT创建马甲账号,非原子;并发创建同名账号会触发 username 唯一约束异常导致发帖失败。建议改用app_db_insert_ignore/app_db_upsert以 username 为唯一键,冲突时回读已有 id。plugin.php:7只取第一个@@username作作者,而plugin.php:12用无 limit 的替换删除了正文里全部@@指令,多处出现时会被误删。建议只删除实际作为作者的那一个匹配。plugin.php:20-31直接INSERT INTO app_users,email 用用户名@local(中文名会生成非法邮箱),绕过了核心用户创建校验。建议复用核心用户创建函数或补同等校验。- 账号创建发生在主题/回帖事务之前,发帖事务失败会留下孤儿账号,建议延后创建或注明该副作用。
✅ 修复优先级
先修 #1(越权冒充防护)与并发防重 #2,再处理指令误删与账号校验、事务边界。
🔍 插件审查报告(AI 自动审查,对照《AI 开发规则》与开发者文档;本插件未被 8/18 楼上 350 的报告覆盖,属独立首次审查)
插件:马甲发帖(puppet_posting)v1.1.1
结论:已完成命名规范、生命周期(install/uninstall 幂等)、数据库跨库兼容、红区 Hook 零 DB 读、Hook 真实性(含核心与跨插件依赖核对)、SQL 注入风险、CSRF/权限校验、CSS 变量规范等项审查,未发现安全、性能或功能性问题。
- bbs1org2026-08-29
旧格式迁移:已将插件代码转存到开发日志,主题正文改为基础介绍。
- bbs1org2026-09-21
版本 1.1.1 更新:
支持v10 - bbs1org2026-09-21
版本 1.1.2 更新:
更新版本号