- 更好的每日签到 - 竹知了与人机验证ID checkin_captcha版本 1.2.1插件制作者 mingmeo免费1014 行 / 48.6 KBHook / 路由 / 后台页支持按钮签到与竹知了互动签到,均可选 Cloudflare Turnstile 人机验证,并支持开屏签到红包。app/plugins/checkin_captcha/plugin.php开发日志已有 3 条
此项目接受所有登录用户协助维护和提交更新。
淘帖专辑官方安装插件合集主楼 插件质量报告
插件:
checkin_captchaHook 功能范围 循环 使用频率 文件读写 修改系统表 读写系统表 读写自己的表 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_id uint 否 - 主键 checkin_date key 否 - 主键 streak uint 否 1 - created_at uint 否 - - 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- bbs1org2026-08-17
考虑一下用户没签到的时候,访问首页弹出一个签到红包,一天只提醒一次。插件后台可控制。
🔍 插件审查报告(对照《AI 开发规则》与开发者文档)
🔒 安全问题
- 开屏红包引导脚本把原始请求串直接拼入 JS(plugin.php:970
window.location.href = '{$_SERVER['REQUEST_URI']}?a=checkin_captcha';),未转义即输出到页脚,可被构造链接造成反射型 XSS。建议改用route_url('checkin_captcha')生成固定地址,或用 h()/json_encode 转义后再拼接。
⚡ 性能问题
未发现明显问题。
🐛 功能/规范缺陷
app.boot钩子每次请求都执行冲突检测并抛异常(plugin.php:4-8、plugin.php:1001),一旦 daily_checkin 同时启用会导致全站报错。建议仅在 install/启用时检测,运行时只记录日志。- 签到先查后插(plugin.php:296、plugin.php:339),双击或并发提交会触发主键冲突导致 500。建议用
app_db_insert_ignore或事务内重查,并在提交后禁用按钮。 - Turnstile 校验请求缺少响应大小上限(plugin.php:163
curl_exec),建议加 CURLOPT_MAXFILESIZE 并检查 curl_error。 - Cookie 键
checkin_redpacket_shown与 JS 全局dailyCheckinTurnstileCallback未按checkin_captcha_前缀规范命名。 - 钩子回调
checkin_captcha_check_conflict(): void为零参签名,应改为两参(mixed $value, array $ctx)。
✅ 修复优先级
XSS 转义 > app.boot 抛异常 > 签到并发兜底 > 前缀与回调签名规范。
- 开屏红包引导脚本把原始请求串直接拼入 JS(plugin.php:970
🔍 插件审查报告(AI 自动审查,对照《AI 开发规则》与开发者文档;本插件未被 8/18 楼上 350 的报告覆盖,属独立首次审查)
插件:更好的每日签到 - 竹知了与人机验证(checkin_captcha)v1.2.0
🔒 安全问题
未发现明显安全问题。⚡ 性能问题
未发现明显问题。🐛 功能/规范缺陷
规范一致性建议:后台管理页函数体内未见显式调用核心 need_admin()(依赖核心 admin_page() 路由层统一鉴权兜底,当前不构成越权);涉及写操作时判断请求方式使用手写的 $_SERVER['REQUEST_METHOD'] === 'POST',效果等价于核心 require_post(),但写法与站内多数插件不一致。✅ 修复优先级
低优先级:建议在后台页面函数内补充显式 need_admin()/require_post() 调用,作为纵深防御,避免未来核心路由调整时失去这层保护;不影响当前功能与安全性。v1.2.1
Bug 修复
- fix: 红包跳转到签到页面逻辑存在问题 (#1155)
此发行版解决了工单 #1155 竹知了签到bug
最后由 mingmeo 编辑于 2026-09-06 19:42点赞与点评1bbs1org投币2026-09-06