内网部署与图片下载白名单

防 SSRF 的默认策略会拒绝一切指向环回、内网、链路本地与云元数据的地址。这对公网站点是安全的,但对部署在内网的 Halo(封面/正文图片的绝对地址解析到内网 IP)会造成同步失败。为此插件提供了一个显式、默认关闭的内网白名单,而非「一键放开全部内网」的开关(后者会重新打开审核所指的 SSRF 风险)。

配置位置:插件设置 →「微信公众号」→「图片下载内网白名单」(多行文本框)。

默认行为:留空 = 不放行任何内网地址(等价于开关关闭,最安全,也是过审的默认状态)。

支持的四类条目(每行一个,以 # 开头的行或行内 # 之后的内容为注释):

类型示例匹配含义
域名精确halo.internal仅放行主机名为 halo.internal 的目标
子域通配*.example.com放行 example.com 及其全部子域(如 img.example.com)
单个 IP192.168.1.10、fd00::1按 /32、/128 处理,仅放行该 IP
CIDR 网段192.168.0.0/16、10.0.0.0/8、fd00::/8放行整个网段

配置示例(内网 Halo,站点地址为 http://192.168.1.20:8090,图片均由该服务器提供):

# 只信任自站内网地址,其余内网/元数据地址仍拒绝
192.168.1.20
# 若整个内网段都有可信图片源,可改用网段(谨慎,范围越大风险越高):
# 192.168.1.0/24

若图片由内网的另一台图床/对象存储提供,则把其域名或 IP/网段加入即可。

安全提示:

  • 白名单仅放宽“允许访问受限网段”这一条,URL 结构校验(仅 http/https、禁 userinfo)、禁止重定向、超时与响应体上限仍然生效。
  • 请按最小必要原则配置:能用单个 IP 就不用 /24,能用 /24 就不用 /8;切勿为方便而加入 0.0.0.0/0 或直接写入云元数据网段。
  • 白名单属全局插件配置,需管理员权限才能修改;面向普通用户的角色无法通过同步请求影响它。
  • 白名单在预检与连接期两处一致生效:即便域名重新解析(DNS rebinding),只要目标不在白名单且为受限地址,连接仍会被拒绝。