Nginx反向代理其他站点,Referer防盗链导致图片403错误

视频播放403 Forbidden错误全解析:从权限到防盗链的排查指南 HTTP 403 Forbidden是Web开发中常见的状态码,表示服务器理解请求但拒绝执行。其背后原理涉及服务器权限模型、访问控制列表(ACL)及安全策略。在音视频流媒体领域,该错误直接影响播放体验与用户留存,常由文件系统权限不足、服务器配置规则或防盗链机制触发。典型的应用场景包括视频点播网站、CDN资源分发及需要内容保护的媒体服务。本文聚焦于播放器请求视频资源时遭遇403错误的深度排查,特别是针对热词“token exchange failed”所代表的动态令牌验证失败,以及服务器配置中Referer校 阅读详情

问题

由于需要在我们的小程序中链接其他外部的网站做内容显示来满足我们的需求,但微信小程序中web-view加载网页,需要在微信公众号平台中设置业务域名,并且业务域名需要做服务器校验,这就会导致我们无法直接的使用外部的网站(如:www.baidu.com)

 

解决方案

使用 Nginx 做反向代理,配置如下:

location /路径 {
        proxy_pass 代理网站;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_redirect off;
}

但在使用上述配置后,又出现了其他的问题,由于代理网站图片资源做了Referer防盗链,这就导致网站加载出来后,图片报403错误,导致无法正常加载

鉴于上述问题,分析原因,通过反向代理访问后,页面内容已经输出至浏览器,图片等资源则直接是请求的代理网站服务器,代理网站服务器做了Referer防盗链,如果Referer为空或者是代理网站域名则通过授权,否则就出现上诉问题 403 错误

那怎么解决了?

通过上诉分析,我们知道,通过反向代理访问,页面内容响应之前,我们改变内容再输出,比如说替换代理服务器网站为我们自己的域名,并通过我们自己的域名再次做反向代理,或者页面资源请求时不携带Referer

在这里,因为可以通过不携带Referer来简便处理,所以怎么设置不携带Referer呢?

这时我们就会使用到HTTP请求中的referrer和Referrer-Policy,以及怎么设置 referrer,至于referrer和Referrer-Policy请看另外的一篇文章

现在我们可以通过 meta 标签来设置 referrer,配置如下:

<meta name="referrer" content="no-referrer">

那么是不是只要在页面输出前,将上述的配置,动态添加至页面内就能解决Referer防盗链问题了,下面我们将整个反向代理配置修改如下:

location /路径 {
        proxy_pass 代理网站;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_redirect off;

        sub_filter '</title>' '</title><meta name="referrer" content="no-referrer">';
        sub_filter_once on;
        sub_filter_types *;
}

我们通过替换掉 </title> 结束标签,并把我们需要设置的内容一并添加进去,现在我们重启Nginx服务器,重新访问时,防盗链问题已经解决了

 

总结

由于比较少配置 nginx,以及遇到这个问题的时候,也是通过百度来查找了很多资料,最后解决时发现还是很简单,同时也是对反向代理有了一点点了解,把这个写出来也希望能帮助到其他的同学

 

 

 

 

视频播放403 Forbidden错误全解析:从防盗链到Token鉴权的排查与解决 HTTP 403 Forbidden状态码是客户端错误的一种,其核心含义是服务器理解请求但拒绝执行。在Web开发与运维实践中,该状态码常与资源访问控制机制紧密相关,其背后原理涉及服务器安全策略、访问规则及网络协议交互。从技术价值看,正确处理403错误是保障Web应用安全、实现细粒度资源管控的关键,尤其在媒体流、API接口等场景下至关重要。具体到视频播放领域,403错误的高频触发点包括防盗链机制和访问鉴权失效。防盗链通过校验HTTP Referer请求头来阻止非授权站点盗用资源,是保护带宽与版权的基础手段。而 阅读详情

相关推荐

视频播放403 Forbidden错误全解析:从权限校验到防盗链的排查指南

HTTP状态码是Web开发与运维中的基础概念,其中4xx系列代表客户端错误。403 Forbidden状态码的原理是服务器理解请求但拒绝执行,这通常源于权限校验失败。理解其技术价值在于,它能有效保护静态资源(如图片、视频)不被盗用,并作为访问控制的核心机制。在实际应用场景中,视频播放服务常因文件系统权限、服务器配置规则、尤其是防盗链策略触发403错误。防盗链通过校验HTTP请求头中的Referer字段来阻止跨站资源盗用,是导致视频“看不了”的常见原因。本文基于防盗链和Nginx配置等热词,系统梳理了从基础权

weixin_30412167的博客 356

Nginx 配置反向代理不生效(代理到nacos集群)

反向代理无法生效的解决方案

m0_50119649的博客 3445

从线上盗链事故到实战:详解HTTP Referer防盗链原理与Nginx/CDN配置

在Web开发与运维中,服务器资源保护是一个基础且关键的课题。其核心原理在于识别和验证请求的来源,防止未经授权的第三方消耗带宽与计算资源。HTTP协议中的Referer头在这一过程中扮演了重要角色,它携带了请求发起的页面地址,为服务器提供了判断依据。这项技术的核心价值在于保障业务稳定性与控制成本,尤其对于内容社区、媒体站点及文件下载服务至关重要。典型的应用场景包括防止图片、视频等静态资源被外部网站直接引用,从而避免因盗链导致的突发流量与额外费用。本文基于真实的线上盗链事故与多年维护经验,深入剖析了防盗链的工作

weixin_33646989的博客 253

Nginx 深入优化

nginx 的深入优化,包括更改进程数、配置网页压缩、设置防盗链、FPM参数优化等。 一、更改进程数: 目的:在高并发的环境中,需要启动更多的 nginx 进程以保证快速响应,用以处理用户的请求,避免造成阻塞。 (1)可使用命令:ps aux | grep nginx ,查看 nginx 的运行个数。 其中,master process 是主进程;worker process 是子进程;以上可以...

weixin_45409371的博客 544

微信图片防盗链破解:服务端反向代理方案详解与实战

在Web开发中,防盗链机制是网站保护自身资源不被外部直接引用的常见技术手段,其核心原理是通过校验HTTP请求头中的Referer字段来判断请求来源的合法性。这一机制虽然有效,但也给内容创作者和站长带来了跨域资源引用的难题,尤其是在聚合或转载内容时。为了解决这一问题,服务端反向代理技术应运而生,它通过在自有服务器上搭建一个中转层,将客户端的请求转发至目标服务器,并在转发过程中修改或屏蔽Referer信息,从而绕过防盗链校验。这种方案不仅技术实现稳定可靠,还能在此基础上集成缓存、压缩等优化功能,极大地提升了资源

weixin_29314405的博客 257

SpringBoot防盗链实战:从Referer检查到签名URL的纵深防御体系

在Web应用安全领域,资源防盗链是保护服务器带宽和内容版权的基础技术。其核心原理是通过验证HTTP请求的来源(如Referer头),判断请求是否来自授权域名,从而阻止未经许可的外部站点直接链接资源。传统的Referer检查因其依赖客户端可控的请求头,存在被伪造、篡改或绕过(如通过设置no-referrer策略)的风险,技术价值有限。在实际工程中,这可能导致流量盗用、资源滥用甚至安全漏洞。因此,构建健壮的资源访问控制方案需结合多种技术,例如对动态资源采用基于HMAC的签名URL机制,为每个链接附加时效性和唯一

weixin_34242331的博客 422

Nginx-反向代理配置学习总结

nginx反向代理配置学习总结

DM的个人练习 3552

Nginx 403错误排查全指南:从权限、配置到SELinux

HTTP 403状态码表示服务器理解请求但拒绝执行,不同于404的资源不存在,它意味着nginx已接收并解析请求,只是在某个环节拦截了访问。排查403的核心原理是定位拦截点:先看nginx错误日志中的Permission denied、directory index is forbidden或access forbidden by rule等关键词,再依次检查worker进程用户对文件及父目录的读和执行权限、SELinux/AppArmor安全上下文,以及index指令、root与alias路径拼接等常见配

weixin_34268579的博客 363

NGINX解决第三方图片跨域问题

nginx第三方图片代理

qq_31481269的博客 2084

Nginx valid_referer配置三大隐藏陷阱与CSRF防御实战

CSRF(跨站请求伪造)是一种常见的Web安全威胁,攻击者利用用户已登录的会话状态,诱导其执行非本意的操作。其防御原理之一是基于HTTP Referer请求头进行来源校验,Nginx的valid_referer指令正是实现此校验的核心工具。该指令通过匹配请求头中的Referer值是否位于预设的白名单内,为应用提供了一层基础防护,技术价值在于能够有效拦截大量明显的跨站恶意请求,减轻后端压力。然而,其实际应用场景复杂,尤其在空Referer处理、协议切换及正则匹配等环节极易配置失当,导致防御失效或误伤正常流量。

weixin_36250541的博客 493

Nginx安全加固实战:禁止IP访问与防盗链配置详解

在Web服务器安全与资源管理中,访问控制与资源保护是两大核心基础。其原理在于通过校验请求的来源与合法性,确保流量与资源被精确路由与使用。从技术价值看,这不仅能有效抵御自动化扫描、减少无效流量以降低服务器负载与成本,更是保护数字资产、维护带宽主权的关键实践。在应用场景上,无论是防止恶意IP探测、避免内容被第三方站点盗用,还是确保多站点环境下的流量精确分发,都至关重要。本文聚焦于Nginx这一广泛使用的Web服务器,通过配置默认服务器块拦截非法IP访问,并结合Referer校验实现防盗链,为服务器筑起基础安全防

weixin_33935636的博客 319

Nginx 反向代理导致的 session 丢失的解决方法

在用nginx的反向代理tomcat的路径中,可能会出现session丢失问题。每发送一次请求 JESSIONID都会发生改变,说明上一次形成的session丢失,从而创建新的session。 第一种情况: server{ listen 80; server_name www.jiahemdata.com www.jiahemdata.cn; ...

phubing 5494

Miniconda3迁移(附图详细过程)

服务器上目录占满,想要将conda迁移到其他目录下的操作方法,详细教程。

2301_77554343的博客 6942

nginx配置防盗链

现在流行前后端分离开发的情况下,一般我们都会将静态资源放在nginx的html目录下。这种情况下,我们就无法通过Java代码写拦截器来防盗链了。所以这里我们来说明一下如何使用nginx来配置防盗链。 1.我们先修改本地hosts文件,将 www.czx.com 映射到 127.0.0.1。 2.在html文件夹下放一张图片,图片名就叫123.jpg 然后修改nginx的html文件夹下的ind...

czx2018的博客 1642

ESP32 Arduino学习篇 (一) 引脚和串口的基本使用

简单来讲arduino就是通过源代码控制开发板的信号输入输出从而实现对一些电子元件的控制,例如LED灯,蜂鸣器,按键arduino程序首先来讲arduino程序是基于C语言,而实现类似对于LED灯和蜂鸣器的简单控制只需简单C语言知识即可实现。arduino程序是基于函数的,而在arduino的库有很多函数,我们只需要调用即可。arduino的程序主体是**setup()函数和loop()**函数以及其它在使用过程中需要构建的函数:setup()函数。

DOF526570的博客 1万+

MT6768平台Sensor Bring Up全流程实战:从驱动添加到问题排查(附避坑指南)

本文详细介绍了联发科MT6768平台Sensor Bring Up的全流程实战指南,从驱动添加、硬件配置到问题排查,提供了全面的避坑建议。内容涵盖环境准备、驱动文件集成、硬件接口配置、编译系统适配以及常见问题解决方案,帮助开发者高效完成传感器集成与调试工作。

weixin_30374009的博客 416

Nginx (6):nginx防盗链配置

先说一下含义,就是想让nginx里的静态资源只供它反向代理连接的内部服务器去访问,其他人想访问,就不给。比如01虚拟机充当nginx服务器,它里面存了很多静态资源,04虚拟机proxy_pass到01虚拟机,想访问它的页面,01虚拟机不想让你通过这种方式拿到我的静态资源,于是可以设置防盗链。举个例子,我proxy_pass到尚硅谷的主页,肯定要访问它的域名背后的nginx服务器,正常来说该服务器保存了很多静态资源,然后该nginx去将本次访问的任务分配给某个内部服务器。

lyy的博客 1452

PLC编程入门基础知识

PLC即为可编程逻辑控制器,实质是一种专用于工业控制的计算机,其硬件结构基本上与微型计算机相同。

SANRENYIXING的博客 2万+

彻底解决Halo+AList组合中阿里云盘防盗链问题的实战方案

你是否在使用Halo搭配AList插件管理阿里云盘资源时,频繁遇到图片加载失败、文件无法预览的问题?本文将从问题根源出发,提供一套完整的解决方案,让你彻底摆脱阿里云盘防盗链机制的困扰,实现资源的顺畅访问。 ## 问题现象与技术原理 当你在Halo博客中嵌入通过AList挂载的阿里云盘图片时,可能会遇到类似以下情况:图片显示裂图,浏览器控制台提示403 Forbidden错误,或者直接跳转到阿里...

gitblog_01390的博客 545

Autodesk全家桶怎么选?AutoCAD、Revit、Fusion 360等7款软件超全对比指南

本文深入对比了Autodesk旗下七款核心软件(AutoCAD、Revit、Inventor、Fusion 360、Maya、3ds Max、Forge)的核心定位与适用场景。针对建筑、制造、创意设计等不同专业需求,提供精准的选型指南,帮助用户根据自身工作流(如二维绘图、BIM协同、产品开发、影视动画)选择最匹配的工具,避免资源浪费并提升效率。

stone的博客 434

树莓派c语言串口通讯程序

在网上搜了很多关于树莓派串口通讯的例子,但是都是用python写的,虽然python很有名,而且最近也在学习这门语言, 但是还是想用c语言实现一下,因为需要用到整套系统里,其他内容都是用c语言写的。但是网上没有找打现成的。 还好,之前做过天嵌2440开发板的串口程序(参照天嵌工程师提供的代码),发现串口程序其实是通用的, 驱动层屏蔽了硬件细节,个人猜测,几乎所有移植好的系统的串口,都可以用一

realank的专栏 1万+

Nginx 防盗链

worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream httpds{ server 192.168.159.104;.

孚尹旁达 2781

R语言TCGA数据下载避坑指南:biolinks包实战中的5个常见错误与解决方案

本文详细介绍了使用R语言的TCGAbiolinks包下载TCGA数据时常见的5个错误及其解决方案,包括安装与加载问题、查询构建参数设置、下载中断处理、数据加载格式不匹配以及版本兼容性问题。通过实战案例和代码示例,帮助生物信息学研究者高效获取TCGA数据,避免常见陷阱。

weixin_30892037的博客 84

SpringBoot防盗链实战:从Referer校验到签名URL,带宽直降90%

在网站资源被频繁盗链的背景下,服务器带宽和流量成本往往会急剧飙升。理解盗链的本质——第三方站点直接引用你的资源URL,消耗你的服务器资源——是制定防刷策略的前提。常用的防护手段包括基于Referer来源的请求校验,它在Nginx入口层和应用层都能快速拦截非法请求;但对于伪造Referer的高级攻击,则需要引入带时效的签名URL机制,通过HMAC或MD5生成一次性令牌,确保资源链接无法被批量盗用。这类技术广泛应用于图片、视频、PDF等静态资源的防护场景,能显著降低带宽消耗、提升服务稳定性。本文将从拦截器实现、

weixin_42562079的博客 344

Linux 命令之 locale -- 设置和显示程序运行的语言环境

文章目录命令介绍locale 设置规则使用详解(一)查看当前 locale 设置(二)查看当前系统所有可用 locale(三)设置系统的 locale 命令介绍 locale 是 Linux 系统中多语言环境的设置接口,在 Linux 中,使用 locale 命令来设置和显示程序运行的语言环境,locale 会根据计算机用户所使用的语言,所在国家或者地区,以及当地的文化传统定义一个软件运行时的语言环境。 通过 locale 来设置程序运行的不同语言环境,locale 由ANSI C提供支持。locale 的

liaowenxiong的博客 3万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

宝塔面板中如何设置防盗链保护图片_在站点设置中添加防盗链规则

别加空格、别写 .jpg(点不要)、别塞 html(否则首页可能白屏)许可域名:必须包含你自己的主域和常用子域,例如 example.com,www.example.com,*.example.com;微信内嵌浏览器、PWA、地址栏直输图片地址等场景都发空 Referer,不勾这个,用户第一眼就看到 403 或裂图响应资源建议填一张站内存在的 fallback 图,比如 /security.png,比纯 403 更友好,也避免 CDN 缓存错误状态码。为什么点了保存却没生效?

maqr_110的博客 174

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: ASP.NET Core 实战:使用 Docker 容器化部署 ASP.NET Core + MySQL + Nginx
下一篇: HTTP请求中的referrer和Referrer-Policy
jayccx
博客等级 码龄18年 13粉丝 7原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值