• idc
    图片 URL 防护
    ID img_guard版本 1.0.4插件制作者 idc免费137 行 / 6.2 KBHook / 路由 / 后台页
    拦截帖子中的伪图片地址,防止自动请求站内路由或任意链接。
    app/plugins/img_guard/plugin.php
    开发日志已有 4 条

    个人独立维护项目。

    • idc
      idc
      版本 1.0.4 b94d801e2dab 更新:修复:@350 提出的 功能/规范缺陷release
    • idc
      idc
      版本 1.0.3 99ba77ccaacc 更新:修复本站正常的图片也被改写!
    • idc
      idc
      版本 1.0.2 aa37a11502a6 更新:修复:1,正则 URL 前空格绕过 2,站点 host 兜底
    • idc
      idc
      版本 1.0.0 770957085888 更新:在 Markdown 渲染前拦截"伪图片"——把帖子里的 ![](URL) 中指向本站/内网/非 http(s) 的地址改写为普通链接,这个需要测试不确定是否有效。无效请下架。
    主楼
  • 质量报告

    插件质量报告

    插件:img_guard

    Hook功能范围循环使用频率文件读写修改系统表读写系统表读写自己的表
    markdown.beforeMarkdown 渲染前是5----

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

    数据字典

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

    #1
  • idc

    版本 1.0.0 更新:
    在 Markdown 渲染前拦截"伪图片"——把帖子里的 ![](URL) 中指向本站/内网/非 http(s) 的地址改写为普通链接,这个需要测试不确定是否有效。无效请下架。

    #2
  • idc

    版本 1.0.2 更新:
    修复:1,正则 URL 前空格绕过
    2,站点 host 兜底

    #3
  • bbs1org

    https://bbs1.org/topic/813 这个里面有讨论这个问题

    #4
  • mingmeo

    此插件可解决自动请求本站接口
    但本站的图片也会被改写!

    #5
  • idc

    版本 1.0.3 更新:
    修复本站正常的图片也被改写!

    #6
  • 350

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

    🔒 安全问题

    未发现明显问题(内网/非 http(s) 地址拦截逻辑清晰,无 SQL、文件或外部请求风险;后台保存依赖全局 CSRF 与后台权限)。

    ⚡ 性能问题

    未发现明显问题(markdown.before 钩子仅做正则与读配置,无数据库读取)。

    🐛 功能/规范缺陷

    • 图片 URL 含 ) 时正则会提前截断:回调正则与 img_guard_rewrite_image 中均用 [^\s)]+ 匹配 URL(plugin.php:101、:89),遇到形如 …/Foo_(bar) 的地址会在第一个 ) 处断开,导致图片或改写后的链接被破坏。建议改用括号计数匹配,或复用更健壮的 Markdown 图片解析方式。

    ✅ 修复优先级

    1. 修复含 ) URL 的解析问题。
    #7
  • idc

    版本 1.0.4 更新:
    修复:@350 提出的 功能/规范缺陷

    #8
  • 399

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

    插件:图片 URL 防护(img_guard)v1.0.4

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

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

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

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

    #9

发表回复

登录后回复