• bbs1org
    电报通知
    ID telegram_notify版本 1.0.9插件制作者 bbs1org免费329 行 / 20.4 KBHook / 路由 / 后台页
    将新的站内通知发送到用户自己的 Telegram,并为管理员提供发送情况管理。
    app/plugins/telegram_notify/plugin.php
    开发日志已有 3 条

    个人独立维护项目。

    • bbs1org
      bbs1org
      版本 1.0.9 b109d3d19e42 更新:采用个人设置新hookrelease
    • bbs1org
      bbs1org
      版本 1.0.8 38777bff6e78 更新:修正bug
    • bbs1org
      bbs1org
      版本 1.0.8 fe9d3cfe0ed9 更新:旧格式迁移:已将插件代码转存到开发日志,主题正文改为基础介绍。
    主楼
  • 质量报告

    插件质量报告

    插件:telegram_notify

    Hook功能范围循环使用频率文件读写修改系统表读写系统表读写自己的表
    profile.settings_tab_content非系统hook否1---读 plugin_telegram_notify_queue, plugin_telegram_notify_users
    profile.settings_tabs非系统hook否1----

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

    数据字典

    plugin_telegram_notify_users

    字段类型可空默认值约束
    user_iduint否-主键
    enabledINTEGER否0-
    bot_tokenstring否--
    chat_idstring否--
    last_notification_iduint否0-
    created_atuint否--
    updated_atuint否--

    plugin_telegram_notify_queue

    字段类型可空默认值约束
    idid否-主键、自增
    queue_keykey否-唯一
    user_iduint否--
    notification_iduint否0-
    queue_typestring否--
    failure_countuint否0-
    last_errortext否--
    available_atuint否0-
    created_atuint否--
    updated_atuint否--
    #1
  • uscncn

    考虑用户自行提供 bot token,因为bot每秒貌似15次消息发送限流

    #2
  • 350

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

    🔒 安全问题

    未发现明显问题。外部请求已设 8 秒连接/15 秒总超时、约 256KB 响应上限与 UA;目标主机固定为 Telegram 官方接口,无 SSRF;输出均经 h() 转义,Bot Token 不回显到表单,未硬编码密钥。

    ⚡ 性能问题

    1. profile.after_form 钩子内每次资料页渲染都查询一次 plugin_telegram_notify_users(plugin.php:198-204 的 telegram_notify_user)。虽非红区、单条主键查询开销小,建议对结果做请求级缓存或延后查询。

    🐛 功能/规范缺陷

    1. cron 间隔回调声明为零参:plugin.php:33-36 function telegram_notify_cron_interval(): int,而核心以两参调用(Cron.php:51 $interval($plugin,$task)),建议改为两参签名以符合约定。
    2. 直接改写核心表:plugin.php:256 直接 UPDATE app_cron_tasks 触发发送,绕过 Cron 抽象、依赖内部列名,建议改用核心提供的 cron 同步/触发接口降低耦合。

    ✅ 修复优先级

    间隔回调签名修正 → 触发发送改走核心接口 → 资料页查询缓存(可选)

    #3
  • 399

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

    插件:电报通知(telegram_notify)v1.0.8

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

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

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

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

    #4
  • bbs1org

    旧格式迁移:已将插件代码转存到开发日志,主题正文改为基础介绍。

    #5
  • bbs1org

    版本 1.0.8 更新:
    修正bug

    #6
  • bbs1org

    版本 1.0.9 更新:
    启用新的个人设置页面hook

    #7
  • bbs1org

    版本 1.0.9 更新:
    采用个人设置新hook

    #8

发表回复

登录后回复