• awinds
    Telegram 绑定
    ID telegram_bind版本 1.4.3插件制作者 awinds免费845 行 / 45.8 KBHook / 路由 / 后台页
    用户可将自己的 Telegram 账号与论坛账号绑定,方便确认身份。支持实时绑定、新帖推送频道、站内通知推送到 Telegram。
    app/plugins/telegram_bind/plugin.php
    开发日志已有 3 条

    个人独立维护项目。

    • awinds
      awinds
      版本 1.4.3 d4d6aa07ad1e 更新:1、修复一些检查出来的问题release
    • awinds
      awinds
      版本 1.4.1 8482aafed6cf 更新:1、官方支持通知钩子后增加通知异步发送到TG功能。 2、个人设置绑定TG成功后可开启通知发送到TG功能,默认关闭(TG机器人发送限制)。
    • awinds
      awinds
      版本 1.3.0 511ccda58870 更新:1、支持开启用户绑定TG功能。用户绑定TG后使用user_api插件时可获取绑定tgid 2、支持TG频道功能,填写TG频道后新贴子会发送到TG频道,并且在快捷功能中显示TG频道的链接 3、支持TG群组,填写TG群组后在快捷功能中显示TG群组的链接
    主楼
  • 质量报告

    插件质量报告

    插件:telegram_bind

    Hook功能范围循环使用频率文件读写修改系统表读写系统表读写自己的表
    sidebar.feature_links首页/侧栏快捷功能否5----
    notification.after_create通知及未读数写入后否3---写 plugin_telegram_bind_notify_queue;读 plugin_telegram_bind_links
    profile.after_form个人资料编辑表单否3---读 plugin_telegram_bind_links
    topic.after_save主题保存后否3--app_users写 plugin_telegram_bind_notify_queue
    request.csrf_exempt请求 CSRF 豁免检查否2----
    site.closed_allow站点关闭访问豁免检查否2----
    user_api.telegram_info非系统hook否1---读 plugin_telegram_bind_links

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

    数据字典

    plugin_telegram_bind_links

    字段类型可空默认值约束
    idid否-主键、自增
    user_iduint否-唯一
    telegram_id{$bigint}否-唯一
    chat_id{$bigint}否--
    telegram_usernamestring否--
    first_namestring否--
    bound_atuint否--
    notify_enabledINTEGER否0-

    plugin_telegram_bind_codes

    字段类型可空默认值约束
    idid否-主键、自增
    user_iduint否--
    codekey否-唯一
    statusINTEGER否--
    expires_atuint否--
    created_atuint否--

    plugin_telegram_bind_notify_queue

    字段类型可空默认值约束
    idid否-主键、自增
    user_iduint否--
    chat_idstring否--
    contenttext否--
    topic_iduint否0-
    statusINTEGER否0-
    attemptsINTEGER否0-
    created_atuint否--
    sent_atuint否0-
    #1
  • awinds

    版本 1.3.0 更新:
    1、支持开启用户绑定TG功能。用户绑定TG后使用user_api插件时可获取绑定tgid
    2、支持TG频道功能,填写TG频道后新贴子会发送到TG频道,并且在快捷功能中显示TG频道的链接
    3、支持TG群组,填写TG群组后在快捷功能中显示TG群组的链接

    #2
  • awinds

    版本 1.4.1 更新:
    1、官方支持通知钩子后增加通知异步发送到TG功能。
    2、个人设置绑定TG成功后可开启通知发送到TG功能,默认关闭(TG机器人发送限制)。

    #3
  • 350

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

    🔒 安全问题

    1. Webhook 路由在从未启用过 Webhook 时无鉴权:telegram_bind_webhook_route 用 setting('plugin_telegram_bind_webhook_secret') 取密钥,仅当 $secret 非空才 hash_equals 校验(plugin.php:336-341);而该密钥只在 set_webhook 时生成(plugin.php:100-108、130)。若站长一直用轮询模式、从未点过「启用 Webhook」,密钥为空,任何人都能向 ?a=telegram_bind_webhook POST 任意 message 并触发 handle_message 及库写入。无数据泄露/越权,但属未鉴权入口;建议 secret 为空时直接 403。
    2. SQL 全部参数化(plugin.php:176、209、316、418 等),未发现注入。
    3. 无 XSS:输出均 h();机器人 Token 仅掩码回显(plugin.php:538-539、619),未泄露。
    4. 外部请求固定 api.telegram.org,走核心 remote_http_request(协议/超时/大小/重定向均受限),无 SSRF。
    5. 状态路由均 require_post()+need_login(),全局 check() 校验 CSRF;request.csrf_exempt / site.closed_allow 回调签名与核心一致,无越权、无积分改动。

    ⚡ 性能问题

    topic.after_save 在发帖主流程内同步调用 Telegram sendMessage(plugin.php:292,timeout 5s):TG API 慢/超时时会阻塞发帖请求最多 5 秒(try/catch 兜住不报错)。建议改为写入现有队列由 cron 异步发送。该钩子非红区,row()/forum_by_id() 读取合规。

    🐛 功能/规范缺陷

    1. description 含「Webhook」技术名词(plugin.php:787),违反规则 22(面向普通用户)。
    2. manifest author 为 bbs1org,与市场登记作者 awinds 不一致(plugin.php:788)。
    3. 其余注册 Hook 均真实存在且两参签名正确;notification.after_create 上下文与核心一致。

    ✅ 修复优先级

    1. Webhook secret 为空时拒绝请求(高,未鉴权入口)。
    2. topic.after_save 改队列异步推送(中,阻塞发帖)。
    3. 修正 description 与 author(低)。
    #4
  • awinds

    版本 1.4.3 更新:
    1、修复一些检查出来的问题

    #5
  • 399

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

    插件:Telegram 绑定(telegram_bind)v1.4.3

    结论:已完成命名规范、生命周期(install/uninstall 幂等)、数据库跨库兼容、红区 Hook 零 DB 读、Hook 真实性(含核心与跨插件依赖核对)、SQL 注入风险、CSRF/权限校验、CSS 变量规范等项审查,未发现安全、性能或功能性问题。

    #6

发表回复

登录后回复