• bbs1org
    头像镜像
    ID avatar_mirror版本 1.0.0插件制作者 bbs1org免费193 行 / 10.3 KBHook / 路由 / 后台页
    将头像资源保存到本站,减少对外部服务的依赖,让头像显示更稳定。
    app/plugins/avatar_mirror/plugin.php
    开发日志已有 1 条

    个人独立维护项目。

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

    插件质量报告

    插件:avatar_mirror

    Hook功能范围循环使用频率文件读写修改系统表读写系统表读写自己的表
    avatar.url头像 URL 生成是4----
    user.before_save用户注册/资料保存前否3----
    avatar.picker用户资料头像选择器否2----

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

    数据字典

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

    #1
  • 350

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

    🔒 安全问题

    • plugin.php:46-49 远程头像 SVG 仅以 stripos($svg,'<svg') 判断后原样写入 app/avatars 并同源输出,且 remote_http_request 未传 max_bytes 大小上限;第三方 SVG 可携带脚本,同源托管存在风险。建议:请求时限定响应大小,并对 SVG 做白名单净化(剥离 script/foreignObject 等)。

    ⚡ 性能问题

    未发现明显问题。

    🐛 功能/规范缺陷

    • plugin.php:83-87 渲染钩子直接返回本地地址 asset_url('app/avatars/…'),未校验文件是否存在;镜像不完整或手动填写目录名时会造成破图。建议加 is_file 判断,缺失时回退到远程地址。

    ✅ 修复优先级

    优先处理远程 SVG 的净化与大小上限(安全),再补本地文件存在性回退(功能)。

    #2
  • 399

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

    插件:头像镜像(avatar_mirror)v1.0.0

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

    #3
  • bbs1org

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

    #4

发表回复

登录后回复