• mingmeo
    去你的机器人
    ID fxxk_you_robot版本 1.1.0插件制作者 mingmeo免费291 行 / 12.5 KBHook / 路由 / 后台页
    使用 Cloudflare Turnstile 人机验证 + JWT 令牌阻止机器人访问。
    app/plugins/fxxk_you_robot/plugin.php
    开发日志已有 1 条

    此项目接受所有登录用户协助维护和提交更新。

    • banming
      banming
      版本 1.1.0 97ebd08dde21 更新:- 修复安全性问题 > 此版本提供了重要安全性问题修复,建议所有已安装用户更新release
    主楼
  • 质量报告

    插件质量报告

    插件:fxxk_you_robot

    Hook功能范围循环使用频率文件读写修改系统表读写系统表读写自己的表
    app.boot全站请求启动否5----
    request.csrf_exempt请求 CSRF 豁免检查否2----

    颜色说明:黄色表示有数据读写,红色表示 Hook 在系统循环中执行,浅蓝色表示有文件写入。“列表跳过”表示回调在列表路径会提前返回,“回调内”表示操作位于回调自身或其帮助函数的循环体内。“文件批处理”表示逐个处理用户一次提交的文件,属于必要操作,不标记修正。只有操作实际处于需要优化的循环路径时,才会标记“修正❗️”。

    数据字典

    未检测到插件数据表声明。

    #1
  • mingmeo

    FUCK-YOU-ROBOT 去你的机器人

    本插件为您的论坛添加了 Cloudflare Turnstile 人机验证功能,访问前需要完成验证,防止自动爬虫。
    验证通过后会签发 JWT 密钥 (Json Web Token),携带有效Token时即可访问网站。
    同时设有页面白名单功能,白名单页面无需验证。

    最后由 mingmeo 编辑于 2026-08-13 15:03
    #2
  • 350

    🔍 插件审查报告(对照《AI 开发规则》与开发者文档)

    🔒 安全问题

    • plugin.php:254-255/264/266 把 Turnstile 秘密密钥与 JWT 密钥明文回显到后台表单 value,违反“密钥不得出现在页面”。建议改为输入框留空、显示“已保存,留空不修改”。
    • plugin.php:194 跳转只拦 // 开头,未校验绝对 URL 与控制字符,存在开放重定向隐患,建议复用核心返回地址校验逻辑。

    ⚡ 性能问题

    未发现明显问题。

    🐛 功能/规范缺陷

    • 返回地址功能失效:plugin.php:200-204 仅在验证页判断当前地址,而进入验证页时地址已含 fxxk_you_robot_verify,返回 Cookie 永不写入,验证后总是跳回首页。应在 boot 重定向前记录原始地址。
    • plugin.php:150 app.boot 回调为零参数,建议改为 ($value, array $ctx) 两参签名。

    ✅ 修复优先级

    1. 密钥回显(中);2. 跳转校验与返回地址修复(中);3. 回调签名(低)。
    #3
  • mingmeo

    v1.1.0

    • 修复安全性问题

    此版本提供了重要安全性问题修复,建议所有已安装用户更新

    最后由 mingmeo 编辑于 2026-08-18 13:01
    #4
  • 350

    🔍 复核报告(v1.1.0,回应此前审查)· @banming

    ✅ 已确认修复

    1. 密钥回显:Turnstile 秘密密钥与 JWT 密钥的 input 已改 value="",只显示「已保存,留空则不修改」占位符(plugin.php:252-253、262、264)——密钥不再出现在页面。
    2. 开放重定向:跳转改为「/ 开头且非 // 的相对路径」或「host===HTTP_HOST 的同源绝对地址」才 go(),否则回首页(plugin.php:184-192)。
    3. 返回地址:已移到 app.boot 重定向前用 $_SERVER['REQUEST_URI'] 写入返回 Cookie(plugin.php:151-155),验证成功后读取并跳回(plugin.php:181-186)——功能恢复。
    4. 回调签名:fxxk_you_robot_boot($value = null, array $ctx = []) 已改两参(plugin.php:136)。

    ❌ 未生效 / 新问题

    未发现明显问题。

    💡 顺带建议

    启用但未配置 Turnstile 密钥时有锁站风险:boot 对所有非白名单请求重定向到验证页(plugin.php:139-157),而 verify_turnstile 在 secret_key==='' 时恒返回 false(plugin.php:116),普通用户会卡在验证循环(管理员因白名单 admin 可进后台自救)。建议 enabled 默认关闭,或密钥为空时跳过拦截。另 JWT 密钥输入框是 type="text"(plugin.php:264),建议改 type="password"。

    这个插件现在干净了(仅建议加一道「未配置即放行/停用」保护)。

    #5
  • 399

    🔍 插件审查报告(AI 自动审查,对照《AI 开发规则》与开发者文档;本插件未被 8/18 楼上 350 的报告覆盖,属独立首次审查)

    插件:去你的机器人(fxxk_you_robot)v1.1.0

    🔒 安全问题
    未发现明显安全问题。

    ⚡ 性能问题
    未发现明显问题。

    🐛 功能/规范缺陷
    规范一致性建议:后台管理页函数体内未见显式调用核心 need_admin()(依赖核心 admin_page() 路由层统一鉴权兜底,当前不构成越权);涉及写操作时判断请求方式使用手写的 $_SERVER['REQUEST_METHOD'] === 'POST',效果等价于核心 require_post(),但写法与站内多数插件不一致。

    ✅ 修复优先级
    低优先级:建议在后台页面函数内补充显式 need_admin()/require_post() 调用,作为纵深防御,避免未来核心路由调整时失去这层保护;不影响当前功能与安全性。

    #6

发表回复

登录后回复