nginx

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > nginx > NGINX 浏览器盗链与防止被盗

NGINX中浏览器的盗链与防止被盗的实现

作者:俗_人

本文介绍在局域网内实现盗链与防盗链的配置方法,通过Nginx设置valid_referers限制资源访问来源,非法引用返回403禁止访问,感兴趣的可以了解一下

1、盗链的实现(本项目仅供参考,在局域网内实现,请遵守相关法律)

1.1 准备操作

我们需要两台主机,一台为Ubuntu,作为偷盗机,一台centos作为被盗机,具体配置以及IP地址如下表:

名称IP地址CPU内存nginx安装方式
centos192.168.107.19022编译安装
Ubuntu192.168.107.18022apt安装

1.2 nginx的安装

nginx的安装在此就不再赘述

见如下状态

#centos
[root@localhost ~]# systemctl start nginx.service 
[root@localhost ~]# systemctl status nginx.service 
● nginx.service - nginx - high performance web server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since 三 2025-05-07 19:40:01 CST; 24s ago
     Docs: http://nginx.org/en/docs/
  Process: 1958 ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf (code=exited, status=0/SUCCESS)
 Main PID: 1961 (nginx)
   CGroup: /system.slice/nginx.service
           ├─1961 nginx: master process /apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf
           ├─1962 nginx: worker process
           └─1963 nginx: worker process

5月 07 19:40:01 localhost.localdomain systemd[1]: Starting nginx - high performance web server...
5月 07 19:40:01 localhost.localdomain systemd[1]: Started nginx - high performance web server.
[root@localhost ~]# 

#ubnutu
root@ubuntu:~# systemctl start nginx
root@ubuntu:~# systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2025-05-07 11:22:53 UTC; 17min ago
       Docs: man:nginx(8)
    Process: 958 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 966 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 967 (nginx)
      Tasks: 3 (limit: 4519)
     Memory: 9.1M
        CPU: 158ms
     CGroup: /system.slice/nginx.service
             ├─967 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ├─968 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             └─969 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

May 07 11:22:53 ubuntu systemd[1]: Starting A high performance web server and a reverse proxy server...
May 07 11:22:53 ubuntu systemd[1]: Started A high performance web server and a reverse proxy server.
root@ubuntu:~# 

1.3 实现盗链

ubuntu操作

root@ubuntu:~# cd /var/www/html/
root@ubuntu:/var/www/html# ls
index.html  index.html.bak
root@ubuntu:/var/www/html# vim index.html
root@ubuntu:/var/www/html# 
#index.html文件内容如下
<html>
<body>
<h1>this is ailun-yegeyu  </h1>
<img src="http://192.168.107.190/a.jpg"/>
</body>
</html>
~        

centos操作

[root@localhost data]# cd /apps/nginx/conf.d/
[root@localhost conf.d]# ls
ailun.conf
[root@localhost conf.d]# vim ailun.conf

主站点目录为根目录下的data文件夹

我们在站点目录下拖入一张a.jpg

[root@localhost ~]# cd /data/
[root@localhost data]# ls
a.jpg  index.html  main  test

网站测试
http://192.168.107.180/index.html

2、防盗链的实现

配置文件如下

server{
listen 80;
server_name www.ailun.com;
root /data/;

location ~* \.(jpg|gif|swf|png)$ {
         valid_referers none 192.168.107.190;
         if ( $invalid_referer ) {
           return  403;
           #rewrite ^/ http://192.168.107.190/error.png;
           }
        }


}

这段代码是 Nginx 的配置文件片段,主要作用是配置一个虚拟主机,并且对特定类型的文件进行防盗链处理。下面是对代码各部分的详细解释:

1. 服务器监听配置

listen 80;
server_name www.ailun.com;
root /data/;

2. 特定文件类型的位置块配置

location ~* \.(jpg|gif|swf|png)$ {

3. 防盗链配置

valid_referers none 192.168.107.190;

4. 非法引用处理

if ( $invalid_referer ) {
    return  403;
    #rewrite ^/ http://192.168.107.190/error.png;
}

3、验证

经过笔者的多次验证,我们在原先的浏览器上仍然可以访问到这张图片

我们只能将这种原因归结于浏览器的缓存问题

我们选择换几个浏览器测试

在另一台centos的火狐浏览器上

在windows10浏览器中

我们可以观察到页面已经变成了403,防盗链实验成功

到此这篇关于NGINX中浏览器的盗链与防止被盗的实现的文章就介绍到这了,更多相关NGINX 浏览器盗链与防止被盗内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文