• mingmeo
    更好的每日签到 - 竹知了与人机验证
    ID checkin_captcha版本 1.2.1插件制作者 mingmeo免费1014 行 / 48.6 KBHook / 路由 / 后台页
    支持按钮签到与竹知了互动签到,均可选 Cloudflare Turnstile 人机验证,并支持开屏签到红包。
    app/plugins/checkin_captcha/plugin.php
    开发日志已有 3 条

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

    • banming
      banming
      版本 1.2.1 2136dfb7310f 更新:# v1.2.1 - fix: 红包跳转到签到页面逻辑存在问题 (#1155) 此发行版解决了工单 (#1155 竹知了签到bug)[https://bbs1.org/topic/1155]release
    • banming
      banming
      版本 1.2.0 91052eb6af18 更新:- 新增「开屏签到红包」功能
    • banming
      banming
      版本 1.1.0 e01f5df8fc4d 更新:- 新增签到模式:竹知了 摇够指定圈数签到 - 仍可选择开启人机验证 - 修复bug
    主楼
  • 质量报告

    插件质量报告

    插件:checkin_captcha

    Hook功能范围循环使用频率文件读写修改系统表读写系统表读写自己的表
    app.boot全站请求启动否5----
    page.footer全站页面页脚否5---读 plugin_checkin_captchas
    sidebar.feature_links首页/侧栏快捷功能否5---读 plugin_checkin_captchas
    sidebar.stack全站侧栏组件栈否5---读 plugin_checkin_captchas

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

    数据字典

    plugin_checkin_captchas

    字段类型可空默认值约束
    user_iduint否-主键
    checkin_datekey否-主键
    streakuint否1-
    created_atuint否--
    #1
  • mingmeo

    better-checkin 更好的签到

    此插件为您的论坛提供了可启用人机验证的签到功能。
    本插件与 daily_checkin 每日签到插件冲突。

    function checkin_captcha_check_conflict(): void
    {
        $plugin_list = plugins();
        if (isset($plugin_list['daily_checkin']) && $plugin_list['daily_checkin']['enabled']) {
            throw new RuntimeException('检测到已加载 "daily_checkin" 插件,本插件已整合相关功能,请停用冲突插件后重试。');
        }
    }

    最后由 mingmeo 编辑于 2026-08-13 14:25
    #2
  • mingmeo

    CHECKIN-CAPTCHA 更好的签到 v1.1.0

    • 新增签到模式:竹知了 摇够指定圈数签到
    • 仍可选择开启人机验证
    • 修复bug

    最后由 mingmeo 编辑于 2026-08-14 12:59
    #3
  • bbs1org

    考虑一下用户没签到的时候,访问首页弹出一个签到红包,一天只提醒一次。插件后台可控制。

    #4
  • mingmeo

    ok

    #5
  • mingmeo

    CHECKIN-CAPTCHA 更好的签到 v1.2.0

    • 新增「开屏签到红包」功能

    @bbs1org 相关功能已实现。

    最后由 mingmeo 编辑于 2026-08-17 12:04
    #6
  • 350

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

    🔒 安全问题

    1. 开屏红包引导脚本把原始请求串直接拼入 JS(plugin.php:970 window.location.href = '{$_SERVER['REQUEST_URI']}?a=checkin_captcha';),未转义即输出到页脚,可被构造链接造成反射型 XSS。建议改用 route_url('checkin_captcha') 生成固定地址,或用 h()/json_encode 转义后再拼接。

    ⚡ 性能问题

    未发现明显问题。

    🐛 功能/规范缺陷

    1. app.boot 钩子每次请求都执行冲突检测并抛异常(plugin.php:4-8、plugin.php:1001),一旦 daily_checkin 同时启用会导致全站报错。建议仅在 install/启用时检测,运行时只记录日志。
    2. 签到先查后插(plugin.php:296、plugin.php:339),双击或并发提交会触发主键冲突导致 500。建议用 app_db_insert_ignore 或事务内重查,并在提交后禁用按钮。
    3. Turnstile 校验请求缺少响应大小上限(plugin.php:163 curl_exec),建议加 CURLOPT_MAXFILESIZE 并检查 curl_error。
    4. Cookie 键 checkin_redpacket_shown 与 JS 全局 dailyCheckinTurnstileCallback 未按 checkin_captcha_ 前缀规范命名。
    5. 钩子回调 checkin_captcha_check_conflict(): void 为零参签名,应改为两参 (mixed $value, array $ctx)。

    ✅ 修复优先级

    XSS 转义 > app.boot 抛异常 > 签到并发兜底 > 前缀与回调签名规范。

    #7
  • 399

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

    插件:更好的每日签到 - 竹知了与人机验证(checkin_captcha)v1.2.0

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

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

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

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

    #8
  • mingmeo

    v1.2.1

    Bug 修复

    • fix: 红包跳转到签到页面逻辑存在问题 (#1155)

    此发行版解决了工单 #1155 竹知了签到bug

    最后由 mingmeo 编辑于 2026-09-06 19:42
    #9

发表回复

登录后回复