Nginx--防盗链问题

news2024/9/20 18:40:58

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除

一、什么是盗链

盗链是一种网络行为,指的是一个网站未经授权,直接使用另一个网站资源(如图片、视频、音乐、文件等)的链接地址,使得这些资源在未经允许的情况下被访问和使用。这种行为通常发生在内容提供商希望保护其资源不被他人非法使用的情况下。盗链可能会导致以下几个问题:

  • 宽带消耗
  • 版权侵犯
  • 广告收入损失
  • 服务滥用
  • 法律风险

二、防盗链

1、实现模块

Nginx 防盗链主要是通过ngx_http_referet_module模块实现的,该模块通过检查HTTP请求中的 Referer 头部来判断请求是否合法。如果请求中的 Referer与配置的规则不匹配,则可以返回403状态码,拒绝访问资源

2、防盗链配置

配置要点

 [root@nginx-server ~]# vim /etc/nginx/nginx.conf
 # 日志格式添加"$http_referer"
 log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                 '$status $body_bytes_sent "$http_referer" '
                 '"$http_user_agent" "$http_x_forwarded_for"';
 # valid_referers 使用方式
 Syntax: valid_referers none | blocked | server_names | string ...;
 Default: —
 Context: server, location
  • none允许没有http_refer的请求访问资源
  • blocked:允许不是http://开头的,不带协议的请求访问资源--被防火墙过滤掉的
  • server_names:只允许指定ip/名来的请求访问资源(白名单

三、实验

1、环境准备

主机名ip地址说明
centos-210.0.0.3nginx服务器
centos-110.0.0.2nginx服务器,对centos-2进行盗链
centos-310.0.0.4nginx服务器,对centos-2进行盗

2、盗链配置

2.1、使用centos-2进行nginx服务发布:

 [root@centos-2 ~]# cat /etc/nginx/conf.d/default.conf 
 server {
         listen 80;
         server_name localhost;
         location ~ .*\.(gif|jpg|png|jpeg)$ {
                 root /usr/share/nginx/html;
                 index K8s.png;
         }
 }

浏览器测试访问:

2.2、在centos-1中对其进行盗链:

 [root@centos ~]# cat /usr/share/nginx/html/index.html 
 <html>
 <head>
     <meta charset="utf-8">     #用来做实验  红色的底
     <title>qf.com</title>
 </head>
 <body style="background-color:red;">
     <img src="http://10.0.0.3/K8s.png"/>
 </body>
 </html>

浏览器访问,发现盗链成功

3、防盗链配置

3.1、更改centos-2进行防盗链配置

 [root@centos-2 ~]# cat /etc/nginx/conf.d/default.conf 
 server {
         listen 80;
         server_name localhost;
         location ~ .*\.(gif|jpg|png|jpeg)$ {
                 root /usr/share/nginx/html;
                 index K8s.png;
         valid_referers server_names 10.0.0.2;   # 表示只允许10.0.0.2访问
             if ($invalid_referer){
                return 502;
             }
         }
 }

测试,发现,10.0.0.2能够进行访问,10.0.0.4不能够访问到

浏览器测试访问:

当然,实验中可能会遇到缓存问题,建议使用谷歌下Ctrl+Shift+N使用无痕模式实验。

致谢

在此,我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者,如果文章中有任何错误,欢迎留言指正。 

学习永无止境,让我们共同进步!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2052031.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

人人可以做的RAG检索增强生成实战

AI大模型持续火爆&#xff0c;我作为IT人员从业者也想参与一下&#xff0c;但是奈何大模型的参数太大&#xff0c;动辄上亿的参数需要很大的算力&#xff0c;GPU卡必不可少&#xff0c;对于手头羞涩的小白&#xff0c;不想投几千大洋只为了满足自己的好奇心。这真是个难题。 现…

【车载开发系列】单片机烧写的文件

【车载开发系列】单片机烧写的文件 【车载开发系列】单片机烧写的文件 【车载开发系列】单片机烧写的文件一. 什么是bin二. 什么是Hex三. 什么是Motorola S-record&#xff08;S19&#xff09;四. ELF格式五. Bin与Hex文件的比对六. 单片机烧写文件的本质 一. 什么是bin bin是…

回顾 | 瑞云科技亮相ICIC2024,虚拟仿真实训云平台引关注

2024年8月7日&#xff0c;天津市虚拟仿真学会主办的第二十届智能计算国际会议&#xff08;ICIC2024&#xff09;——虚拟仿真技术交流平行会议暨天津市虚拟仿真学会2024年暑期技术交流会在天津盛大召开。本次大会汇聚来自全国的顶尖专家、学者和行业领袖&#xff0c;共同探讨虚…

Notepad--文本编辑工具 for Mac教程【苹果电脑-简单轻松上手-免费Mac软件推荐】

Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行软件&#xff0c;将其拖入应用程序中&#xff0c;等待安装完毕2、应用程序显示软件图标&#xff0c;表示安装成功 三、运行测试解决“软件已损坏&#xff0c;无法打开”问题&#xff0c;若没有该问题&#xff0c;可…

TI DSP TMS320F280025 Note1:工程模板Template创建

TMS320F280025工程模板Template创建 文章目录 TMS320F280025工程模板Template创建新建一个ccs工程为需要添加的一些文件新建文件夹从c2000中拷贝官方基础文件到工程中cmd链接文件common头文件和源文件headers头文件和源文件库函数文件添加driverlib.lib文件 添加文件的路径文件…

【微信小程序】生命周期

1. 什么是生命周期 2. 生命周期的分类 3. 什么是生命周期函数 4. 生命周期函数的分类 5. 应用的生命周期函数 小程序的应用生命周期函数需要在app.js中进行声明&#xff0c;示例代码如下&#xff1a; 6. 页面的生命周期函数 小程序的页面生命周期函数需要在页面的 .js 文件…

将 hugo 博客搬迁到服务器

1. 说明 在 Ubuntu 22.04 上使用 root 账号&#xff0c;创建普通账号&#xff0c;并赋予 root 权限。 演示站点&#xff1a;https://woniu336.github.io/ 魔改hugo主题: https://github.com/woniu336/hugo-magic 2. 服务器配置 建立 git 用户 adduser git安装 git sudo apt …

蓝图中结构体改变后,要重新创建widget

发现了一个怪现象&#xff0c;在更改结构体后&#xff0c;界面上出不来相应的信息了&#xff0c;断掉传递到界面上的线后&#xff0c;再重新连接&#xff0c;发现错误“只有完全匹配的结构才是兼容的”&#xff0c;删除后&#xff0c;重新创建widget&#xff0c;正常。 如下图…

【STM32项目】在FreeRtos背景下的实战项目的实现过程(二)

个人主页~ 实战项目的实现过程&#xff08;一&#xff09;~ 实战项目的实现过程 二、初步了解各个外设硬件1、OLED模块2、GPS模块3、MPU6050模块4、超声测距模块5、温度测控模块6、语音模块7、SIM模块8、按键模块 三、查阅资料1、查看手册2、查找例程 四、研究硬件功能1、OLED…

OpenCv图像处理: 时域滤波与频域滤波

时域滤波&#xff1a; 空间域滤波的步骤一般如下&#xff1a; 1. 选择滤波器 选择一种低通滤波器&#xff0c;常见的包括&#xff1a; 均值滤波&#xff08;平均滤波器&#xff09;高斯滤波&#xff08;Gaussian filter&#xff09; 2. 定义滤波器核 根据选择的滤波器类型&…

【卡码网Python基础课 19.洗盘子】

目录 题目描述与分析一、栈二、栈的操作三、代码编写 题目描述与分析 题目描述&#xff1a; 在餐厅里&#xff0c;洗盘子的工作需要使用到栈这种数据结构。 假设你手里有一个盘子堆放区。现在需要模拟洗盘子的过程&#xff0c;每个盘子都有一个编号。 盘子堆放区操作说明&…

同一台电脑上安装不同版本的nodejs(搭配VSCode)

今天拉取了一个前后端分离的项目&#xff0c;运行前端的时候&#xff0c;出现node版本不匹配的情况。 本文章将从安装node.js开始到VSCode使用进行讲解 1、去官网下载node版本 以16版本为例&#xff0c;需要哪个版本&#xff0c;就在网址上把版本号替换即可 https://nodejs.o…

在ADS中使用传输端口参数构建理想元器件模型---以3dB电桥为例

在ADS中使用传输端口参数&#xff08;S、Z、Y、ABCD&#xff09;构建理想元器件模型—以3dB电桥为例 本文工程文件下载&#xff1a;在ADS中使用传输端口参数构建理想元器件模型-以3dB电桥为例-工程文件 目录 在ADS中使用传输端口参数&#xff08;S、Z、Y、ABCD&#xff09;构建…

8月18日笔记

目标不出网场景 在目标环境完全不出网的情况下&#xff0c;即所有的网络通信如SMB&#xff08;Server Message Block&#xff09;、DNS&#xff08;Domain Name System&#xff09;甚至包括TCP&#xff08;Transmission Control Protocol&#xff09;都不允许与外部网络进行交…

使用极限网关实现 ES 跨集群搜索

使用 ES 的小伙伴&#xff0c;有没有在用跨集群搜索的&#xff1f; 熟悉 ES 的小伙伴都知道&#xff0c;ES 本身就能实现跨集群搜索&#xff0c;那为啥还要聊这个&#xff1f;试想一下&#xff0c;如果集群都上线投产了&#xff0c;才出现跨集群搜索需求&#xff0c;那么可能出…

重磅!RISC-V+OpenHarmony平板电脑发布

仟江水商业电讯&#xff08;8月18日 北京 委托发布&#xff09;RISC-V作为历史上全球发展速度最快、创新最为活跃的开放指令架构&#xff0c;正在不断拓展高性能计算领域的边界。OpenHarmony是由开放原子开源基金会孵化并运营的开源项目&#xff0c;已成为发展速度最快的智能终…

Chapter 40 Socket网络编程

欢迎大家订阅【Python从入门到精通】专栏&#xff0c;一起探索Python的无限可能&#xff01; 文章目录 前言一、Socket网络编程二、Socket服务端编程三、Socket客户端编程四、服务端与客户端相互通讯 前言 在现代计算机网络中&#xff0c;Socket&#xff08;套接字&#xff09…

【题解】—— LeetCode一周小结33

&#x1f31f;欢迎来到 我的博客 —— 探索技术的无限可能&#xff01; &#x1f31f;博客的简介&#xff08;文章目录&#xff09; 【题解】—— 每日一道题目栏 上接&#xff1a;【题解】—— LeetCode一周小结32 12.实现一个魔法字典 题目链接&#xff1a;676. 实现一个魔…

Kettle根据时间戳同步数据实现

1 Kettle总体步骤 更多数据实时同步方案&#xff0c;请参考笔者的另一篇博文&#xff1a;大数据时代&#xff0c;数据实时同步解决方案的思考—最全的数据同步总结 由于Kettle自身的特殊性以及在多个步骤中kettle自身处理数据库事务的特殊性&#xff0c;尝试了很多种方案&…

win11内存占用高的解决办法

win11莫名奇妙的总是内存爆满&#xff0c;真的抽象&#xff0c;16g根本不够用。尝试各种方法看看能不能解决… 方法一 关闭快速启动 win11系统&#xff0c;自带快速开机功能&#xff0c;可能用较大内存&#xff0c;关闭看看。控制面板找到电源设置关闭快速启动。 如果没找到要…