Caddy简单图片防盗链

前些天搜索一个关键字的时候,发现其它站某篇帖子和我网站某个文章高度重合,至少有 85%雷同,更为过分的是图片地址也是我站点的,也没有标注来源,完全无视版权申明。

坦白说,这种情况在中国大陆很常见,指望对方改邪归正,恐怕不那么现实。比较简单的解决方式是添加水印或者给图片加上防盗链,加水印很难看,迫不得已不建议这么做,所以图片防盗链是成本最低的处理方式。

1. caddyfile 配置

 1	@invalid_referer {
 2		file
 3		path *.webp *.png
 4		not header Referer https://mephisto.cc*
 5	}
 6
 7	rewrite @invalid_referer /images/403.png
 8
 9	#respond @invalid_referer "Traffic blocked" 403 {
10    #	close
11	#}

如上所示,匹配到 webp 和 png 图片,且请求头中的 Referer 不是我的站点开头的,重定向到一个 403.png 图片。参考文章: https://github.com/wolfogre/blog-utterances/issues/30

另外,还有另外一个处理做法 https://github.com/Stevie-Ray/referrer-spam-blocker/blob/master/referral-spam.caddy2,不够简单清晰。

大同小异,第二种直接返回文本 "Traffic blocked" 和状态码 403,相当于节省了带宽成本。第一种转到另外一个指引图片,利于指引用户到正确地址访问,代价是多了图片的流量带宽成本。

我的规劝图片示例:

invalid referer image

图片是用 inkscape 画的,指引非常友好,让迷途小书童都来我原站交流学习 😀 供读者参考。更改 Caddyfile 后,记得 reload caddy 服务。

2. 确认结果

清理浏览器本地缓存,开启无痕模式,去防盗链网站查看结果。

invalid referer example

可见这种处理方式,对简单复制粘贴行为,还是有点作用的。如果后续发现还有很多绕过这种简单限制的,会考虑添加水印。

最后修改于: Wednesday, August 30, 2023
欢迎关注微信公众号,留言交流。

相关文章:

翻译: