首页 > 系统相关 >Nginx 防盗链

Nginx 防盗链

时间:2022-12-13 09:22:12浏览次数:58  
标签:www nginx Nginx referer Referer com 防盗链

Nginx 防盗链

本篇主要介绍一下 nginx 中 防盗链的具体配置 , 以及http 的 referer 头

image-20221205135337893

概述

防盗链其实就是 防止别的站点来引用你的 资源, 占用你的流量

在了解nginx 防盗链之前 我们先了解一下 什么是 HTTP 的头信息 Referer,当浏览器访问网站的时候,一般会带上Referer,告诉后端该是从哪个页面过来的

nginx的 防盗链'功能基于 HTTP协议的Referer机制,通过判断Referer对来源进行 识别和判断 做出一定的处理

nginx会通就过查看referer自动和valid_referers后面的内容进行匹配,如果匹配到了就将invalid_referer 变量置位1 , 如果没有匹配到 , 则 将 invalid_referer变量置0 , 匹配的过程中不区分大小写.

语法 valid_referers none blocked server_names string…
默认值
位置 server、location

Nginx 防盗链演示

这里我拿图片等资源 作为案例演示

未配置 防盗链的情况

如果你的图片没有做防盗链的控制 , 像如下配置一样, 那么其他人就可以直接使用你的文件图片等等

http {
    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;


       server {
        listen       80;
        server_name  www.testfront.com;
				
        location ~* .(gif|jpg|png) {
           root /www/static;
        }

        location / {
            proxy_pass http://www.testbackend.com;
        }
    }

}

可以看到在其他机器上如 www.testbackend.com 直接引入 www.testfront.com的资源文件 , 也是可以展示的

image-20221205132512265

配置nginx防盗链

如果配置了valid_referers

nginx会通就过查看referer自动和valid_referers后面的内容进行匹配,如果匹配到了就将invalid_referer 变量置位1 , 如果没有匹配到 , 则 将 invalid_referer变量置0 , 匹配的过程中不区分大小写.

    location ~* .(gif|jpg|png) {
       # 配置校验 referer , 意思就是如果referer 是172.16.225.111 或者 www.testfront.com 都通过
       valid_referers 172.16.225.111 www.testfront.com;
       if ($invalid_referer) {
          return 403;
       }
       root /www/static;
    }

此时再访问 www.testbackend.com 去引用 www.testfront.com 的资源 就不能访问了

image-20221205133441066

3. 防盗链的 具体配置

从上面可以看出, 通过配置 valid_referers 后面添加校验的域名和ip , nginx 会自动进行 http的 referer 的匹配

防盗链除了可以配置 ip 域名外, 还能配置 如 none 和 blocked

  • none: 如果Header中的Referer为空,允许访问

  • blocked:在Header中的Referer不为空,但是该值被防火墙或代理进行伪装过,如不带"http://" 、"https://"等协议头的资源允许访问。

  • server_names:指定具体的域名或者IP

    可以支持正则表达式和*的字符串。如果是正则表达式,需要以~开头表示

4.扩展Curl 访问

可以通过curl 直接进行访问 并且指定 referer 来快速测试

curl -i 只看返回头信息

image-20221205134817848

curl -e "" 指定 referer

image-20221205134908232

总结

本篇主要介绍了 nginx中如何配置 防盗链, 来限制别人随意的引用你的资源 造成占用你的网络资源情况, 配置还是毕竟简单的.

欢迎大家访问 个人博客 Johnny小屋
欢迎关注个人公众号

欢迎关注个人公众号

标签:www,nginx,Nginx,referer,Referer,com,防盗链
From: https://www.cnblogs.com/askajohnny/p/16977685.html

相关文章

  • nginx https作网关配置webapi路由规则
    为何有这篇文章?因为我有多个小程序,分别调用不同的api站点,服务器只能安装一个https单域名证书。 1、原webapi接口部署完毕,接口地址比如​​http://www.zyiz.net/api/getarti......
  • Nginx 1.14.2 移植指南(openEuler 20.03 LTS SP1)
    介绍简要介绍Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,其特点是占有内存少,并发能力强,支持FastCGI、SSL、VirtualHost、URLRewrite、gzi......
  • nginx静态资源配置
    root与aliasroot会拼接locationalias不会拼接location例如rootlocation/static{   root/home/nginx-1.11.2.4/html/pc/dist;}访问http://127.0.0.1:80/static......
  • ELK模拟收集nginx日志
    ​这里我额外用了台服务器​​nginx​​-demo(172.16.10.125)使用epel源不然直接用命令安装nginx,提示没有可用的软件包​yuminstallepel-release//安装epelyumupdate......
  • wsl下docker的ubuntu20.04环境配置mysql、nginx、编译php、编译swoole
    1、docker的ubuntu镜像不识别命令 apt-getupdate #更新 2、aptinstallvim#安装vim编辑器 !!!!!wsl2不用换源,会导致安装依赖时出现版本不对应的情况!!!!! ......
  • NGINX的配置和基本使用
    LinuxNGINXNGINX:engineX,2002年开发,分为社区版和商业版(nginxplus)社区版:分为主线版(开发版,奇数),稳定版(偶数) Nginx官网:http://nginx.orgNGINX的两大功能:web服务器......
  • Kubernetes中Ingress-nginx如何获取真实客户端IP?防止X-Forwarded-For伪造
    描述:最近将部分业务通过Ingress进行发布管理,从而实现应用灰蓝发布、金丝雀发布,更贴近当下自动化运维技术的发展,并为了进行实现七层自定义负载转发,将不同应用程序配置......
  • Nginx快速入门
    Nginx-学相伴分享人:秦疆(遇见狂神说)公司产品出现瓶颈?我们公司项目刚刚上线的时候,并发量小,用户使用的少,所以在低并发的情况下,一个jar包启动应用就够了,然后内部tomcat......
  • Rocky9 编译安装 Nginx Mariadb Asp.net Core6 (实测 笔记)
    一、查看硬件信息查看物理cpu个数、核心数量、线程数grep'physicalid'/proc/cpuinfo|sort-u|wc-lgrep'coreid'/proc/cpuinfo|sort-u|wc-lgrep'process......
  • 打包优化,nginx部署到本地nginx服务器,模拟验证上线
    //npmrunbuild自动设置process.env.NODE_ENV=>'production'//npmrunserve则会设置为devlopmentconstisProduction=process.env.NODE_ENV==='production'......