nginx学习记录-防盗链

1. 防盗链的概念

防盗链,顾名思义就是防止盗取链接,这里的链接一般是资源链接。

如图所示,我们访问一个网站时(比如百度),我们第一个请求会获得一个html页面,页面中包含各种资源链接(比如图片),浏览器会解析这些资源链接,再通过http请求获取这些链接。此时,假设这个网站中没有相对应的资源信息,完全可以链接别的网站的资源,这种无授权访问特定网站资源的情况就叫做盗链,防盗链就是指防止这种非法盗用资源的技术

2. 基本配置

nginx中的防盗链配置在location中,关键字valid_referers,格式为

valid_referers none | blocked | server_names | string...

其中none表示允许referer值不存在,

blocked表示存在referer值,但是被防火墙或者代理服务器删除,其值不以http://或者https://开头

server_names以及string表示匹配的referer值,支持正则表达式

比如如下配置

valid_referers 192.168.66.129;

if ($invalid_referer) {
                return 403;
}

该配置表示nginx会校验请求头部的referer字段,只有该字段的值是192.168.66.129才能访问资源,否则会返回403

3. 简单例子

我们准备两台服务器,一台是nginx服务器(192.168.66.129),另一台是资源服务器(192.168.66.1),我们进行如下配置,限制referer值只能为192.168.66.129

此时,我们从外部访问nginx,会返回403,因为我们的referer值为空,不是192.168.66.129

若是我们配置成valid_referers none 192.168.66.129;,允许空值,则可以正常访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值