Nginx web 资源防盗链学习笔记

2024-06-07 17:32

本文主要是介绍Nginx web 资源防盗链学习笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景

  • 今天,浏览了 Nginx Web 资源防盗链的知识,在此做下笔记,当然,毕竟网上的介绍已经很是详细,重要的是在自己配置的过程,难免会有所偏差
  • 对于这一知识点的学习还是很有必要的,文中摘取整理了好多网上资源,个人觉得难点是在已配置 Nginx 的前提下对扩展的添加实现
  • 赘述一点,多参考前辈的介绍,根据错误进行排查,才能有更好的进步,祝你顺利…

【一】概念

(1).何为盗链

客户端向服务器请求资源时,
为了减少网络带宽,提高响应时间,服务器一般不会一次将所有资源完整地传回给客户端。
比如在请求一个网页时,首先会传回该网页的文本内容,
当客户端浏览器在解析文本的过程中发现有图片存在时,
会再次向服务器发起对该图片资源的请求,服务器将存储的图片资源再发送给客户端。
在这个过程中,
如果该服务器上只包含了网页的文本内容,
并没有存储相关的图片资源,而是将图片资源链接到其他站点的服务器上去了,
这就形成了盗链行为

(2).防盗链原理

http 标准协议中有专门的字段记录 referer
一来可以追溯上一个入站地址是什么
二来对于资源文件,可以跟踪到包含显示他的网页地址是什么
因此所有防盗链方法都是基于这个 Referer 字段

【二】笔记

笔记截图

【三】重点

(1). valid_referer 的使用

①. valid_referer 指令的语法结构:

valid_referers none | blocked | server_names | string ....;
none 检测 Referer 头域不存在的请求
blocked 检测 Referer 头域的值被防火墙或者代理服务器删除或伪装的情况。
这种情况下,该头域的值不以 “http://” 或者 “https://” 开头
server_names 设置一个或多个 URL ,检测 Referer 头域的值是否是这些 URL 中的某个。
从 nginx 0.5.33 以后支持使用通配符 “*” 。

②. 配置格式 nginx.conf

location ~* \.(gif|jpg|png|flv|swf|rar|zip|webp)${valid_referers none blocked imuzxx.com *.imuzxx.com server_names ~\.google\. ~\.baidu\.;if ($invalid_referer) {return 403;#rewrite ^/ http://www.baidu.com/403.jpg;}

③. 提示:

  • 使用前,要求已经安装了此扩展模块
  • 对于 referer 的实现,如果盗链的网站通过伪造来路的 http 请求时不能屏蔽

④. 使用演示:

  • 配置文件修改前:

  • 配置文件添加内容:

  • 进行 nginx 重启,建议清除浏览器缓存后演示,修改后的界面显示:

(2). accesskey 使用

①. 配置格式 nginx.conf

location /download {accesskey on;accesskey_hashmethod md5;accesskey_arg "sign";accesskey_signature "signtip$remote_addr";
}
  • 释义:
    • accesskey 为模块开关;
    • accesskey_hashmethod 为加密方式 MD5 或者 SHA-1;
    • accesskey_arg 为 url 中的关键字参数;
    • accesskey_signature 为加密值,此处为 mypass 和访问 IP 构成的字符串。

②. 测试脚本举例

<?php$sign= md5("signtip".$_SERVER['REMOTE_ADDR']);$output_sign = "<a href=http://imuzxx.com/public/wozzxxLM.rar?sign=".$sign.">download_add_key</a><br />";$output_nosign="<a href=http://imuzxx.com/public/wozzxxLM.rar>download_org_path</a><br />";echo $output_sign;echo $output_nosign;?>
  • 图片的访问链接类似
 http://imuzxx.com/download/hello.zip?sign=edsds2324sdf234

④. 提示

  • 使用前,要求已经安装了此扩展模块
  • 一个可供下载的 accesskey 扩展包文件 本人测试环境没有通过,可能是自己操作的问题。

推荐文章

  • Nginx防盗链
  • Nginx防盗链的3种方法
  • 防盗链和反盗链的原理

这篇关于Nginx web 资源防盗链学习笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1039828

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

Nginx实现端口映射的示例代码

《Nginx实现端口映射的示例代码》本文主要介绍了Nginx实现端口映射的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1. 找到nginx的部署路径2. 备份原来的配置文件3. 编辑nginx.conf文件4. 在

Nginx屏蔽服务器名称与版本信息方式(源码级修改)

《Nginx屏蔽服务器名称与版本信息方式(源码级修改)》本文详解如何通过源码修改Nginx1.25.4,移除Server响应头中的服务类型和版本信息,以增强安全性,需重新配置、编译、安装,升级时需重复... 目录一、背景与目的二、适用版本三、操作步骤修改源码文件四、后续操作提示五、注意事项六、总结一、背景与

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程