- TG图片上传ID tg-image-upload版本 2.2.0插件制作者 dashabi免费811 行 / 36.7 KBHook / 路由 / 后台页为发帖和回帖编辑器添加图片上传功能,图片上传至 Telegram 频道,支持拖拽上传,上传后自动插入图片地址。app/plugins/tg-image-upload/plugin.php开发日志已有 1 条
个人独立维护项目。
主楼 插件质量报告
插件:
tg-image-uploadHook 功能范围 循环 使用频率 文件读写 修改系统表 读写系统表 读写自己的表 reply.form_extra 回帖编辑表单 否 2 - - - - topic.form_extra 主题发布/编辑表单 否 2 - - - - 颜色说明:黄色表示有数据读写,红色表示 Hook 在系统循环中执行,浅蓝色表示有文件写入。“列表跳过”表示回调在列表路径会提前返回,“回调内”表示操作位于回调自身或其帮助函数的循环体内。“文件批处理”表示逐个处理用户一次提交的文件,属于必要操作,不标记修正。只有操作实际处于需要优化的循环路径时,才会标记“修正❗️”。
数据字典
未检测到插件数据表声明。
对接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- bbs1org2026-08-12
要接入现有的tg图床吗?还是安装插件后直接就能在后台配置使用tg图床,也就是零侦开搞啊
🔍 插件审查报告(对照《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 或数据库事务保证原子,失败时采用保守拒绝策略。
✅ 修复优先级
- 修 SSRF 重绑定与保留段(中);2. 收紧公开代理限流(中);3. 补限流原子性与 finfo 回退(低)。
- 【中】代理地址 SSRF 校验存在 DNS 重绑定(TOCTOU)与保留段覆盖不全。plugin.php:48
🔍 插件审查报告(AI 自动审查,对照《AI 开发规则》与开发者文档;本插件未被 8/18 楼上 350 的报告覆盖,属独立首次审查)
插件:TG图片上传(tg-image-upload)v2.2.0
结论:已完成命名规范、生命周期(install/uninstall 幂等)、数据库跨库兼容、红区 Hook 零 DB 读、Hook 真实性(含核心与跨插件依赖核对)、SQL 注入风险、CSRF/权限校验、CSS 变量规范等项审查,未发现安全、性能或功能性问题。
旧格式迁移:已将插件代码转存到开发日志,主题正文改为基础介绍。
这是咋回事? 都填写完了