Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >011.Nginx防盗链

011.Nginx防盗链

作者头像
木二
发布于 2020-07-21 02:04:13
发布于 2020-07-21 02:04:13
48100
代码可运行
举报
文章被收录于专栏:木二天空木二天空
运行总次数:0
代码可运行

一 盗链

1.1 盗链概述

盗链指的是在自己的界面展示非本服务器上的内容,通过技术手段获得其他服务器的资源。绕过他人资源展示页面,在自己页面向用户提供此内容,从而减轻自己服务器的负担,因为真实的空间和流量来自其他服务器。

因此,通常为了避免被盗链,通常Web服务器建议配置防盗链,其主要防盗链思路是能区别哪些请求是非正常用户请求。

二 防盗链

2.1 防盗链配置

语法:valid_referers none | blocked | server_names | string ...;

默认值:——

可配置段:server, location

2.2 环境准备

主机

域名

IP

备注

nginx01

good.linuxds.com

172.24.10.21

被盗方

nginx02

steal.uclouda.com

172.24.10.22

盗链方

添加解析:/etc/hosts

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  1 172.24.10.21	good.odocker.com
  2 172.24.10.22    steal.uclouda.com
  3 [root@nginx0X ~]# nginx -V
  4 nginx version: nginx/1.16.1

2.3 模拟盗链

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  1 [root@nginx01 ~]# vi /etc/nginx/conf.d/good.conf	#创建模拟被盗方配置
  2 server {
  3     listen  80;
  4     charset utf-8;
  5         server_name  good.linuxds.com;
  6     location / {
  7         root   /usr/share/nginx/good;
  8         index  index.html;
  9         access_log  /var/log/nginx/good.access.log  main;
 10         error_log   /var/log/nginx/good.error.log  warn;
 11   }
 12 }
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  1 [root@nginx01 ~]# mkdir -p /usr/share/nginx/good/images
  2 [root@nginx01 ~]# echo '<h1>Good</h1>' > /usr/share/nginx/good/index.html
  3 [root@nginx01 ~]# ll /usr/share/nginx/good/images	#上传一张测试图片
  4 total 60K
  5 -rw-r--r-- 1 root root 4.8K Mar 11 16:27 baidu.png
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  1 [root@nginx02 ~]# vi /etc/nginx/conf.d/steal.conf	#创建盗链方配置
  2 server {
  3     listen  80;
  4     charset utf-8;
  5     server_name  steal.uclouda.com;
  6     location / {
  7         root   /usr/share/nginx/steal;
  8         index  index.html;
  9         access_log  /var/log/nginx/steal.access.log  main;
 10         error_log   /var/log/nginx/steal.error.log  warn;
 11   }
 12 }
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  1 [root@nginx02 ~]# mkdir -p /usr/share/nginx/steal
  2 [root@nginx02 ~]# vi /usr/share/nginx/steal/index.html
  3 <html>
  4 <body>
  5 <br>盗链图片</br>
  6 <img src="http://good.linuxds.com/images/baidu.png">
  7 </body>
  8 </html>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  1 [root@nginx01 ~]# nginx -t -c /etc/nginx/nginx.conf	#检查配置文件
  2 [root@nginx01 ~]# nginx -s reload			#重载配置文件
  3 [root@nginx02 ~]# nginx -t -c /etc/nginx/nginx.conf	#检查配置文件
  4 [root@nginx02 ~]# nginx -s reload			#重载配置文件

浏览器访问:http://good.linuxds.com/images/baidu.png

浏览器访问盗链网站:http://steal.uclouda.com/

2.4 防盗链配置01

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  1 [root@nginx01 ~]# vi /etc/nginx/conf.d/good.conf
  2 server {
  3     listen  80;
  4     charset utf-8;
  5     server_name  good.linuxds.com;
  6     location / {
  7         root   /usr/share/nginx/good;
  8         index  index.html;
  9         access_log  /var/log/nginx/good.access.log  main;
 10         error_log   /var/log/nginx/good.error.log  warn;
 11         valid_referers none blocked good.linuxds.com;
 12         if ($invalid_referer) {
 13             return 403;
 14         }
 15   }
 16 }
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  1 [root@nginx01 ~]# nginx -t -c /etc/nginx/nginx.conf	#检查配置文件
  2 [root@nginx01 ~]# nginx -s reload			#重载配置文件

配置释义:

valid_referers:此关键字定义了白名单,即本机自身访问允许;

invalid_referer:此为内置变量,通过判断上一行中的valid_referers值会返回0或者1,

  • none代表请求头中没有referer信息,这一般是直接在浏览器输入图片网址;
  • blocked代表被防火墙过滤标记过的请求。如果访问来源不在白名单内,则返回403错误

浏览器访问:http://good.linuxds.com/images/baidu.png

浏览器访问盗链网站:http://steal.uclouda.com/

如上所示:已成功配置防盗链。

2.5 防盗链配置02

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  1 [root@nginx01 ~]# vi /etc/nginx/conf.d/good.conf
  2 server {
  3     listen  80;
  4     charset utf-8;
  5         server_name  good.linuxds.com;
  6     location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {	#针对特定文件类型
  7       valid_referers none blocked *.linuxds.com linuxds.com;
  8       access_log  /var/log/nginx/good.access.log  main;
  9       error_log   /var/log/nginx/good.error.log  warn;
 10       if ($invalid_referer) {
 11           rewrite ^/ https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=1767274412,1868768041&fm=26&gp=0.jpg;
 12     }
 13   }
 14 }
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  1 [root@nginx01 ~]# nginx -t -c /etc/nginx/nginx.conf	#检查配置文件
  2 [root@nginx01 ~]# nginx -s reload			#重载配置文件

配置释义:

rewrite:判断如果不是白名单第五行则进行重定向到自定义的固定链接。

浏览器访问盗链网站:http://steal.uclouda.com/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Nginx中防盗链(下载防盗链和图片防盗链)及图片访问地址操作记录
日常运维工作中,设置防盗链的需求会经常碰到,这也是优化网站的一个必要措施。今天在此介绍Nginx中设置下载防盗链和图片防盗链的操作~ 一、Nginx中下载防盗链的操作记录 对于一些站点上的下载操作,有很多的下载来源不是本站,是迅雷、flashget, 源源不断的带宽,防盗链绝对是当务之急!使用来源判断根本不靠谱,只能防止一些小白站点的盗链,迅雷之类的下载工具完全无效; 如果是nginx配置的站点,可以使用secure link来完美解决这个问题,远离迅雷. 以下Nginx的盗链配置,仅用于下载服务器的下载防
洗尽了浮华
2018/01/23
4.6K0
Nginx中防盗链(下载防盗链和图片防盗链)及图片访问地址操作记录
如何为Nginx 配置防盗链功能?
referer 请求头包含了当前请求页面的来源地址,即表示当前页面是通过这个来源页面里的链接进入的。
用户1560186
2019/12/06
5.4K0
如何为Nginx 配置防盗链功能?
013.Nginx动静分离
为了提高网站的响应速度,减轻程序服务器(Tomcat,Jboss等)的负载,对于静态资源,如图片、js、css等文件,可以在反向代理服务器中进行缓存,这样浏览器在请求一个静态资源时,代理服务器就可以直接处理,而不用将请求转发给后端服务器。对于用户请求的动态文件,如servlet、jsp,则转发给Tomcat,Jboss服务器处理,这就是动静分离。即动态文件与静态文件的分离。
木二
2020/07/21
1.3K0
013.Nginx动静分离
12.13 Nginx防盗链
Nginx防盗链目录概要 配置如下,可以和上面的配置结合起来 location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$ { expires 7d; valid_referers none blocked server_names *.test.com ; if ($invalid_referer) { return 403; } access_log off
运维小白
2018/02/06
7390
Nginx 防盗链
根据referer的字段,通过referer告诉服务器该网页是从哪个页面链接过来的,一旦检测到来源不是本站即进行阻止或者返回指定的页面
剧终
2020/09/29
1.4K0
Nginx 防盗链
【Nginx-利用Referer防盗链】解决网站被可疑链接调取接口
这两天网站访问速度变慢,查看nginx日志会有很多的大量请求带有可疑的referer,这些referer经过访问后都是短信平台,然后进行调用了我们网站的验证码接口 查看nginx日志
Java架构师必看
2021/06/10
1.6K0
【Nginx-利用Referer防盗链】解决网站被可疑链接调取接口
Nginx----跨域,防盗链
浏览器的同源策略:是一种约定,是浏览器最核心也是最基本的安全功能,如果浏览器少了同源策略,则浏览器的正常功能可能都会受到影响。
大忽悠爱学习
2021/12/08
2.7K0
Nginx----跨域,防盗链
Nginx1.8.1开启防盗链
防盗链:顾名思义,就是防止自己服务器中的链接被他人服务器盗用;特别是对于按流量收费的同学,哇那可损失大了,花自己的钱给别人当图床用。
楠尘
2018/05/11
9064
Nginx 配置详解
地址重写:为了标准化网址,比如输入baidu.com和www.baidu.com,都会被重写到www.baidu.com,而且我们在浏览器看到的也会是 www.baidu.com
白墨石
2022/05/11
6.5K0
Nginx图片防盗链的方式
if{}里面内容的意思是,如果来路不是指定来路就跳转到错误图片(我主要针对图片防盗链),当然直接返回404或者403也是可以的。
用户1503405
2021/10/29
9380
Nginx1.8.1开启防盗链
防盗链:顾名思义,就是防止自己服务器中的链接被他人服务器盗用;特别是对于按流量收费的同学,哇那可损失大了,花自己的钱给别人当图床用。 在Nginx配置文件第21行处替换如下规则: location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ { expires 30d; access_log off; valid_referers none blocked *.baidu.com *.google.com *.iosx.top server_names ~\.
楠尘
2018/06/27
4370
014.Nginx跨域配置
同源策略是一个安全策略。同源,指的是协议,域名,端口相同。浏览器处于安全方面的考虑,只允许本域名下的接口交互,不同源的客户端脚本,在没有明确授权的情况下,不能读写对方的资源。
木二
2020/07/21
8.3K0
014.Nginx跨域配置
nginx防盗链设置
前端开发人员对防盗链这个概念一定不会生疏,类似上面这种图一定见过不少,微信等一些大的平台几乎都做了防盗链处理,那么问题来了什么是防盗链,为何要做防盗链工作? 1.先讲讲防盗链:顾名思义就是不符合规定的
johnhuster的分享
2022/03/28
4540
通过Nginx实现图片防盗链的方法
文字型的复制十分简单,图片型的需要额外存储,所以很多采集站长会选择盗链的形式。何为盗链?简单来说,就是将你网站上图片的链接放到别人的网站上,这样在访问那个人的网站时,实际上在调用你网站的图片,不仅使用你的图片,还用你的流量带宽。
会长君
2023/04/24
6280
11、nginx 防盗链问题
​ HTTP Referer是Header的一部分,当浏览器向Web服务器发送请求的时候,一般会带上Referer,
用户8639654
2021/07/14
7090
Nginx防盗链的配置
通常站点,都会想让自己网站的视频和图片,免被盗用,毕竟视频流量,花的都是白花花银子   首先我们没有配置防盗链的情况下,放开静态资源你的访问。我们来看看效果
用户4919348
2020/06/21
5.2K0
nginx配置文件防盗链
一般网站为了防止资源被外部链接所盗用,都会使用防盗链来进行处理。思路就是判断请求的域名 如下一个相对完全的示例:
meteoric
2018/11/14
8810
Nginx安装配置防盗链及深度优化
一、编译安装前的优化 编译安装前的优化主要是用来修改程序名等等,通过更改源码以便隐藏软件名称和版本号。
小手冰凉
2020/01/14
9870
Nginx安装配置防盗链及深度优化
防盗链Apache和Nginx配置对比
一般我们使用的主机每月都有固定的流量,如果当月额度用完服务器可能会暂停,有些是占用太大的流量会影响网站的访问速度。所以,我们在有必要的前提下可以设置服务器的图片或者其他静态资源防盗链。
php007
2020/07/21
1.1K0
聊聊Nginx
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好
用户3467126
2019/07/03
4160
相关推荐
Nginx中防盗链(下载防盗链和图片防盗链)及图片访问地址操作记录
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档