nginx 防盗链简单配置

nginx 防盗链简单配置,第1张

通常我们不希望自己网站的图片、文件等被一些未经允许的网站应用,那么我们可以在nginx里做一些配置来阻止这些网站的访问。

我们将使用nginx的valid_referers 指令来做防盗链,下面来简单介绍下valid_referers指令。

语法:

valid_referers [none|blocked|server_names] ...

默认值:none

使用环境:server,location

该指令会根据Referer Header头的内容分配一个值为0或1给变量 $invalid_referer 。如果Referer Header头不符合valid_referers指令设置的有效Referer,变量$invalid_referer将被设置为1.

该指令的参数可以为下面的内容:

none:表示无Referer值的情况。

blocked:表示Referer值被防火墙进行伪装。

server_names:表示一个或多个主机名称。从Nginx 0.5.33版本开始,server_names中可以使用通配符"*"号。

简单介绍完后小伙伴们可能会想为啥要用这个参数做防盗链呢?

我们知道HTTP Referer是Header的一部分,当浏览器向Web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器借此可以获得一些信息用于处理。下面我们在浏览器里面打开几个页面来体验下这个参数

下面我们准备一张图片test.jpg,和两台服务器,注意笔者的nginx版本是1.17的,不同的版本可能配置稍微有点不同。

服务器A:47.93.121.3

服务器B:175.24.110.203

笔者将图片test.php 放到服务器A上,并能够正常访问

接着我们在服务器B上写一个test.htm来引用这张图片:

访问看下:

能够正常访问。

但是我们希望服务器B在没有经过允许的情况下不能访问这张图片,那我们就需要配置下服务器A的nginx

那我们再在服务器B上看还能不能访问到这张图片:

发现已经不能访问这张图片,那我们再看看服务器A能不能访问:

微信公众号中的链接不跳转是因为系统设置了防盗链,这是为了保护网站资源,防止恶意外链。

防盗链可以做到只允许特定域名下的页面访问特定域名下的资源,如果不是特定域名,就不允许访问特定域名下的资源,这也就是为什么微信公众号中的链接不跳转的原因。

防盗链还可以在服务器端设置防盗链插件,可以有效地防止恶意外链,避免网站被恶意攻击,保护网站资源安全,提升网站的安全性。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/447328.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-31
下一篇2023-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存