欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > 用Nginx打造防盗链护盾

用Nginx打造防盗链护盾

2025/2/22 2:04:26 来源:https://blog.csdn.net/weixin_42587823/article/details/145680785  浏览:    关键词:用Nginx打造防盗链护盾

用Nginx打造防盗链护盾

一、你的网站正在"为他人做嫁衣"?

想象一下这个场景:
你精心拍摄的摄影作品、录制的课程视频、设计的原创素材,被其他网站直接盗用链接。
更气人的是——当用户在他们网站查看这些资源时,消耗的却是你的服务器流量!

🛑 这就像你花钱买的零食,却被邻居家小孩随便拿去招待客人!


二、防盗链背后的"侦察兵"——$http_referer

1. 这个变量为什么叫错别字?

Nginx内置变量$http_referer(注意是referer不是referrer)就像网络世界的"邀请函":

  • 当用户通过A网站点击链接访问你的资源时
  • 浏览器会自动在请求头里带上Referer: A网站的地址
  • Nginx通过这个变量就能知道请求是从哪来的

2. 为什么不能完全依赖它?

  • 可以被伪造(就像假身份证)
  • 隐私模式下访问时不会携带
  • 直接输入地址访问时值为空

三、三步搭建防盗链系统

步骤1:基础防护——白名单机制

location ~* \.(jpg|png|mp4)$ {valid_referers none blocked *.yourdomain.com ~.google. ~.baidu.;if ($invalid_referer) {return 403;# 或者替换成提示图片# rewrite ^ /static/anti-leech.jpg;}
}

配置解读

  • none:允许直接访问(地址栏输入)
  • blocked:允许去掉http://前缀的访问
  • *.yourdomain.com:主站及其子域名
  • ~.google.:允许来自Google的搜索引擎流量(正则匹配)

步骤2:高级技巧——动态防盗链

location /assets/ {# 生成加密签名(示例逻辑)set $secret_key "your_private_key";set_hmac_sha1 $signature $secret_key $uri;# 验证URL中的签名参数if ($arg_sign != $signature) {return 403;}
}

访问合法URL示例:
/assets/cat.jpg?sign=7d8f9e0a1b2c3d4e5f(签名需后端生成)


四、你可能遇到的灵魂拷问

Q1:为什么我配置后自己网站也显示不了?

✅ 检查清单:

  1. 白名单是否包含自己域名
  2. 是否漏掉了blockednone
  3. 测试时是否使用了隐身模式(无referer)

💡 小贴士:防盗链就像给自家花园装上围栏——
既不能让邻居随便摘花,也要给真正的客人留好入口。
定期检查日志,保持策略更新,才能让盗链者无机可乘!

动手时间:现在就打开你的Nginx配置,试试这些技巧吧!遇到问题欢迎在评论区讨论~

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词