Nginx的应用——图片盗链和防盗链

本文详细介绍了盗链的概念及其实验环境搭建过程,包括如何通过技术手段从其他服务提供商处盗取资源,以及如何在server1和server2之间进行盗链与防盗链的测试。同时,文章还探讨了如何通过修改nginx配置来实现防盗链,以及如何通过重定向进一步加强防盗链的效果。

盗链

  • 盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益。

实验环境

主机(ip)功能
server1(172.25.24.1)防盗链主机
server2(172.25.24.2)盗链主机
真机(172.25.254.24)客户端主机

模拟盗链(server2盗取server1的资源)

server1
  • nginx默认发布目录下有vim.jpg这张图片
[root@server1 nginx]# vim conf/nginx.conf
[root@server1 nginx]# cd html/
[root@server1 html]# ls
50x.html  download  index.html  vim.jpg
[root@server1 html]# pwd
/usr/local/nginx/html
[root@server1 nginx]# systemctl restart nginx

在这里插入图片描述

  • 我们修改server1的nginx的配置文件,将之前实验的内容注释掉。
    在这里插入图片描述
server2
  • 我们用server2主机来进行盗链操作。server2下载nginx,编译,按照server1的方式编译,开启nginx服务。可以参考之前的博客,我这里不再赘述。
  • 修改nginx的配置文件
[root@server2 nginx]# vim conf/nginx.conf
server {
        listen 80;
        server_name daolian.westos.com;

        charset utf-8;
        location / {
                root /web;
                index index.html;
        }
}
[root@server2 nginx]# /usr/local/nginx/sbin/nginx -t
[root@server2 nginx]# /usr/local/nginx/sbin/nginx -s reload

在这里插入图片描述

  • 建立默认的访问页。
[root@server2 nginx]# mkdir /web
[root@server2 nginx]# vim /web/index.html
[root@server2 nginx]# vim /web/index.html
<html>
<body>
<br>盗链图片</br>
<img src="http://www.even.com/vim.jpg">
</body>
</html>
  • 开启nginx服务,查看进程。[root@server2 nginx]# ps -ef | grep nginx
    在这里插入图片描述
测试
  • 真机测试,本地解析文件中加入解析:
    在这里插入图片描述
  • 浏览器中访问:
    在这里插入图片描述
  • 可以看到我们访问的是server2的ip对应的域名,但是拿到的却是server1的资源(因为server2没有,所以叫盗链。)

模拟防盗链

  • WEB应用防火墙通过实现URL级别的访问控制,对客户端请求进行检测。
    如果发现图片、文件等资源信息的HTTP请求来自于其它网站,则阻止盗链请求,节省因盗用资源链接而消耗的带宽和性能。
server1
  • nginx的配置文件修改为如下,重启nginx:
[root@server1 nginx]# vim conf/nginx.conf

140         location ~* \.(gif|jpg|png|jpeg)$ {
141             root /web;
142             valid_referers none blocked www.westos.org;
143             if ($invalid_referer){
144                 return 403;
145                 }
146         }

[root@server1 nginx]# systemctl reload nginx

在这里插入图片描述

server2
  • 默认发布文件下的内容
[root@server2 nginx]# vim /web/index.html 
<html>
<body>
<br>盗链图片</br>
<img src="http://www.westos.com/vim.jpg">
</body>
</html>
[root@server2 nginx]# /usr/local/nginx/sbin/nginx -s reload

在这里插入图片描述

测试
  • 真机做好解析之后,在浏览器中访问测试
    在这里插入图片描述

防盗链的重定向

server1
  • 修改nginx的配置文件,重启服务。
[root@server1 nginx]# vim conf/nginx.conf

136         location / {
137             root /web;
138             index index.html;
139         }
140         location ~* \.(gif|jpg|png|jpeg)$ {
141             root /web;
142             valid_referers none blocked www.westos.org;
143             if ($invalid_referer){
144                 #return 403;
145                 rewrite ^/ http://bbs.westos.com/daolian.jpg;
146         }
147     }

148 server {
149         listen 80;
150         server_name bbs.westos.com;
151         location / {
152                 root /bbs;
153                 index index.html;
154         }
155 }
156 }

[root@server1 nginx]# systemctl restart nginx

在这里插入图片描述
在这里插入图片描述

测试
  • 真机访问测试。
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值