Caddy防盗链配置

参考一种新的可应对空白 referer 的防盗链策略,但是在原文配置中依旧不能解决盗链网站占用自己资源的问题,而且有的cdn不能正常传递referer(所以我换成了cloudflare),所以我额外进行了一步,并进行了优化,原配置文件是这篇文章里下面评论中的v2配置做了些许改动。

直接放配置,有针对各配置的说明

Caddyfile
xxx.com {
	@img {
		path_regexp .\.(jpg|jpeg|gif|png)$
	}
	header @img {
		Cache-Control no-cache
		Content-Security-Policy origin-when-cross-origin
		Referrer-Policy origin-when-cross-origin
    }
	@nonereferer {
		header !Referer
		header Accept image*
		path_regexp .\.(jpg|jpeg|gif|png)$
	}
	@wrongref {
		header Referer *
		not header Referer *.xxx.com/*
		path_regexp .\.(jpg|jpeg|gif|png)$
	}
	#以下两行需要自己制作图片然后修改
	redir @nonereferer https://fangdaolian.njj0121.com/
	redir @wrongref https://fangdaolian.njj0121.com/
	
	root * image
	file_server
}

这是一段可以直接插入已有网站内的配置,对于单独的图床域名也是一样。

配置的说明

修改响应头Cache-Control,让所有图片在读取缓存前向服务器发起请求,如果缓存和服务器匹配就返回304代码,不匹配就重新请求,如果有人从别的网站看到了盗链图片,然后来到了真正的网站,就不会出现缓存盗链图片的事情了,304不是很占用资源。

响应头Content-Security-Policy和Referrer-Policy是为了让浏览器正常发出referer,自己网站都不发出referer就会看到盗链图片了。

然后下面所有的配置都是为了处理referer是否和自己域名匹配。

精通nginx应该能发现这些配置在nginx上也可以很好的实现,不过配置比caddy要长得多。

文章已创建 33

发表评论

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部

了解 njj's blog 的更多信息

立即订阅以继续阅读并访问完整档案。

继续阅读

了解 njj's blog 的更多信息

立即订阅以继续阅读并访问完整档案。

继续阅读