功能预览

功能介绍

文章配图被别的站直接显示,带宽和水印先管哪一个

文章配图被外站直接引用时,流量和服务器负载都算在源站头上,所以带宽优先于水印。防盗链靠来源校验拒绝无效引用页,水印管理处理的是归属而不是流量,标题自动配图与全站替换解决的是发布侧标识。本文给出两者的分工顺序与落地做法。

图片防盗链 水印管理

功能介绍

文章配图被别的站直接显示,带宽和水印先管哪一个?先管带宽。图片被外站直接引用时,请求打到源站、流量和服务器负载由源站承担,这是访问层面的问题;水印管理处理的是归属,即使水印完好,被引用的那份流量仍然记在你账上。所以顺序是先用来源校验把无效引用拦掉,再在发布侧用水印与标题自动配图把标识留清楚。

盗链到底耗什么

盗链消耗的不是存储空间,而是每一次请求:外站页面打开时,浏览器拿着图片地址回到你的站点取图,带宽、连接数和响应时间都被占用。相关方在梳理这类行为时的口径很直接,Patchstack 讲 WordPress 图片防盗链的指南写着 “Hotlinking steals your bandwidth” 和 “increasing your server load”,抢的是带宽、抬高的是服务器负载,而不是存储。

单张图被引用一两次看不出差别,集中采集就不一样:一个把热门配图批量搬走的站点,会把同一张图的请求量放大到源站的访问曲线上出现尖峰。排查时先做两件事,把近七天的流量曲线和配图访问来源放在一起看,确认哪些来源不是自己的域名。

来源校验怎么加

来源校验看的是请求头里的引用页地址。Web 服务器层的做法是加一段规则:来自本站的引用放行,其余来源返回禁止访问的状态码。Patchstack 那篇 WordPress 防盗链指南里写着 “if the request comes from an invalid referer, the server responds with a 403 Forbidden status code.“,按无效引用页返回禁止访问。

要在 CDN 或缓存层同时配置拦截,只拦源站的话请求仍然回到源站才被打断,消耗已经发生。第三方的边缘拦截也有现成能力,Cloudflare 的控制台里可以把这类设置放在 Scrape Shield 下面,用它的 “disallow hotlinking” 选项把未授权站点的引用挡住。

需要清楚两个代价:

  • 引用页地址可以被伪造,来源校验不能当成全部防线,它挡住的是不改动代码的直接引用。
  • 拦截会切断合法引用。合作方按约定引用、读者把页面转发到社交平台,都会看到失效图片,所以要留白名单。

水印解决的是归属

水印管理不处理流量,它处理的是「这张图是谁的」。加水印会改变图片本身,有时还会让图片更大、访问更慢,所以它不该被当成省带宽的手段。它真正的价值在采集类纠纷里:内容被搬走后,转发方很难把标识干净地抹掉。

AnQiCMS 在这条线上分三处能力:水印管理负责给发布出去的图加上标识;防采集干扰码用于保护内容不被批量采集,配合标题自动配图按标题内容为文章分配图片,避免同一张图被反复复用时来源混乱;全站替换工具可以在发现批量误用时,把站内关键词或链接一次性改掉,减少人工逐页修改的成本。这三件事都在发布侧,拦不住请求,但能让被搬走的内容仍然带着出处。

配图与缓存的分工

把两类动作分开排:

  1. 先做拦截:来源校验规则、边缘层的引用限制、白名单清单,这三项决定流量是否还在被消耗。
  2. 再做标识:水印的位置与深浅、标题自动配图的规则是否合理,这决定被搬走之后能不能辨认来源。
  3. 最后做核对:过一周把访问来源再拉一遍,看新增来源里是否还有外站域名。

顺序颠倒的常见后果是:图加了很重的水印,流量照样被搬走,页面反而变慢。

常见问题

只加水印能不能防盗链? 不能。水印不改变请求目标,图片仍然从源站加载,流量消耗照旧发生。

返回 403 之后搜索引擎会不会收不到图? 有可能。需要在规则里为搜索引擎的图片抓取放行,同时把图片地址按站内规范化,避免把合法抓取当无效引用拦掉。

拦截之后历史页面出现裂图怎么办? 两种做法:给被拦来源换成一张带标识的替代图;或者把历史页面上的图片地址整批改写到新的地址上,这一步可以用全站替换工具批量处理,比逐页编辑快。