• dashabi
    TG图片上传
    ID tg-image-upload版本 2.2.0插件制作者 dashabi免费811 行 / 36.7 KBHook / 路由 / 后台页
    为发帖和回帖编辑器添加图片上传功能,图片上传至 Telegram 频道,支持拖拽上传,上传后自动插入图片地址。
    app/plugins/tg-image-upload/plugin.php
    开发日志已有 1 条

    个人独立维护项目。

    • dashabi
      dashabi
      版本 2.2.0 e73bad99d2f0 更新:旧格式迁移:已将插件代码转存到开发日志,主题正文改为基础介绍。release
    主楼
  • 质量报告

    插件质量报告

    插件:tg-image-upload

    Hook功能范围循环使用频率文件读写修改系统表读写系统表读写自己的表
    reply.form_extra回帖编辑表单否2----
    topic.form_extra主题发布/编辑表单否2----

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

    数据字典

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

    #1
  • dashabi

    对接TG 的图床 返回为 网址/index.php?a=img&name=图片名称.. 直接通过服务器进行代理.需要服务器是国外的.需要tg创建频道以及机器人.将机器人设置为频道的管理员 获取频道id和bot的id 填入 .不会可看如何获取Telegram的Bot_Token和Chat_ID 也可使用第三方图片代理... 每个用户限制 20次/分钟 运行逻辑时间线:
    0.00s 用户A、B、C...Z 同时点上传(30人)
    → 令牌桶有 30 个令牌(CAP=30)
    → 前 30 人立即成功 ✅

    0.04s 令牌补充 1 个 → 第 31 人成功
    0.08s 令牌补充 1 个 → 第 32 人成功
    ... 每 40ms 处理 1 个
    → 第 31-40 人在 0.4s 内全部成功
    → 第 41-50 人在 0.8s 内全部成功
    → 以此类推 没有足够多的人测试,不确定会不会引起tg官方的限制

    最后编辑于 2026-08-12 21:30
    #2
  • bbs1org

    tg图床了。不错

    #3
  • Maser

    要接入现有的tg图床吗?还是安装插件后直接就能在后台配置使用tg图床,也就是零侦开搞啊

    #4
  • 350

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

    🔒 安全问题

    • 【中】代理地址 SSRF 校验存在 DNS 重绑定(TOCTOU)与保留段覆盖不全。plugin.php:48 $ip = (string)gethostbyname($host); 只解析一次且仅取 IPv4,校验后 plugin.php:93/568/687/722 的 curl 会再次解析,攻击者控制的域名可在两次解析间切换为内网地址;plugin.php:51-58 也未覆盖 100.64.0.0/10、198.18.0.0/15 等保留段。建议连接时用 CURLOPT_RESOLVE 固定校验通过的 IP,并补齐保留段。
    • 【低】限流键信任客户端可伪造的转发头。plugin.php:205 直接取 HTTP_X_FORWARDED_FOR/HTTP_X_REAL_IP,可伪造绕过每 IP 限制。建议仅用 REMOTE_ADDR 或只取可信反代设置的头。
    • 【低】缺少 finfo 扩展时回退信任客户端 Content-Type。plugin.php:538 $mime = $finfo ? finfo_file(...) : $file['type']; 使类型校验可被绕过。建议无 finfo 时按扩展名二次校验或直接拒绝。

    ⚡ 性能问题

    • 【中】公开的 /img 代理路由(plugin.php:618-751)无鉴权,缓存未命中即发起 getFile 与文件下载两次 Telegram 外联,并消耗与上传共享的全局令牌桶(plugin.php:680),可被刷缓存造成放大并拖慢正常上传。建议对缓存未命中单独限流、加强单文件冷却,公开访问仅命中缓存。

    🐛 功能/规范缺陷

    • 基于文件 JSON 的限流/令牌桶读改写非原子(plugin.php:150-195、210-258),并发下计数不准,且 @file_put_contents 失败被静默忽略。建议用 flock 或数据库事务保证原子,失败时采用保守拒绝策略。

    ✅ 修复优先级

    1. 修 SSRF 重绑定与保留段(中);2. 收紧公开代理限流(中);3. 补限流原子性与 finfo 回退(低)。
    #5
  • 399

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

    插件:TG图片上传(tg-image-upload)v2.2.0

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

    #6
  • dashabi

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

    #7
  • webmaster

    paste-20260902-224112.png这是咋回事? 都填写完了

    #8

发表回复

登录后回复