Nginx服务(9)——nginx中的盗链与防盗链

一、认识盗链与防盗链

1、什么是盗链?

盗链是指服务提供商自己不提供服务的内容,通过技术手段,绕过别人放广告有利益的最终页,直接在自己的有广告有利益的页面上向最终用户提供此内容。 常常是一些名不见经传的小网站来盗取一些有实力的大网站的地址(比如一些音乐、图片、软件的下载地址)然后放置在自己的网站中,通过这种方法盗取大网站的空间和流量。直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益。

2、盗链分类

网站盗链会大量消耗被盗链网站的带宽,而真正的点击率也许会很小,严重损害了被盗链网站的利益。

早期的盗链一般是一些比较小的网站盗取一些有实力的大网站的地址,盗链的目标比较有针对性。现如今,一些大型的网站也已经开始把盗链的目光锁定在了整个互联网上,窃取整个互联网上的其它机器的带宽。

常见的盗链有以下几种:图片盗链、音频盗链、视频盗链、文件盗链

一般被访问浏览的页面并不是一次全部传送到客户端的。
如果客户请求的是一个带有许多图片和其它信息的页面,那么最先的一个HTTP 请求被传送回来的是这个页面的HTML文本。客户端浏览器对这段文本解释执行后,发现其中还有其它文件,客户端浏览器会再发送一条或者更多HTTP请求。当这些请求被处理后其它文件才被传送到客户端,然后浏览器将这些文件放到页面的正确位置。一个完整的页面要经过发送多条HTTP 请求才能够被完整地显示。

基于这样的机制,盗链就成为可能,服务提供商完全可以在自己的页面中嵌入别人的链接,显示在自己的页面上,以达到盗链的目的。

根据盗链的形式的不同,可以简单地把盗链分成两类:常规盗链和分布式盗链

  • 常规盗链比较初级,同时也比较常见,具有一定的针对性,只盗用某个或某些网站的链接
    技术含量不高,实现也比较简单,只需要在自己的页面嵌入别人的链接即可。

  • 分布式盗链是盗链的一种新的形式,系统设计复杂,难度相对较大。这种盗链一般不针对某一个网站,互联网上任何一台机器都可能成为盗链的对象。

服务提供商一般会在后台设置专门程序(Spider)在Internet上抓取有用的链接, 然后存储到自己的数据库中。而对于最终用户的每次访问,都将其转化为对已有数据库的查询,被查询到的URL 就是被盗链的对象。由于对文件的访问已经被浏览器屏蔽掉了,所以最终用户感觉不到所访问的链接是被盗取的链接。

3、什么是防盗链?

WEB应用防火墙通过实现URL级别的访问控制,对客户端请求进行检测。
如果发现图片、文件等资源信息的HTTP请求来自于其它网站,则阻止盗链请求,节省因盗用资源链接而消耗的带宽和性能。

二、配置nginx中的盗链与防盗链

实验环境
主机名ip服务
server1172.25.1.1被盗链服务器
server2172.25.1.2盗链服务器
真机172.25.1.250客户端

其实server1是真正有资源的web服务,server2上面没有资源。当客户访问server2的时候拿到的是server1的资源,点击率却是server2的,不利于server1服务器的正常使用

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

在盗链主机(server2)上
先安装nginx服务,添加图像模块及realip模块

步骤一:安装依赖项

yum install -y gd-devel gcc pcre-devel zlib-devel

点击下载gd-devel安装包

步骤二:下载nginx安装包并解压

tar zxf nginx-1.17.8.tar.gz 

在这里插入图片描述
步骤三:进入解压目录,修改gcc文件,关闭debug日志

cd nginx-1.17.8
vim auto/cc/gcc
# debug
#CFLAGS="$CFLAGS -g"

在这里插入图片描述
步骤四:编译,添加图像模块及realip模块

./configure --prefix=/usr/local/nginx/  --with-http_image_filter_module=dynamic --with-http_realip_module

在这里插入图片描述
步骤五:编译安装

make && make install

在这里插入图片描述
步骤六:配置虚拟主机

server {
    listen       80;
    server_name  daolian.westos.org;

    charset utf-8;

    #access_log  logs/host.access.log  main;

    location / {
        root   /web;
        index  index.html index.htm;
    }

在这里插入图片描述
步骤七:检查语法并启动nginx

/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx 

在这里插入图片描述
步骤八:做软链接

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

在这里插入图片描述
步骤九:创建资源目录

mkdir /web
vim /web/index.html
<h1>daolian.westos.org</h1>
nginx -s reload

在这里插入图片描述
真机(客户端)测试虚拟主机是否添加成功
步骤一:添加本地解析

vim /etc/hosts
172.25.1.2  daolian.westos.org

在这里插入图片描述
步骤二:curl测试

curl daolian.westos.org

在这里插入图片描述
在盗链主机(server2)上
步骤一:编辑发布页面

vim /web/index.html

<html>
<body>
<br>盗链图片</br>
<img src="http://www.westos.org/test.png">
</body>
</html>

在这里插入图片描述
步骤二:重启服务

nginx -s reload

在这里插入图片描述
步骤三:添加本地解析

vim  /etc/hosts
172.25.1.1 www.westos.org

在这里插入图片描述
在被盗链主机(server1)上
步骤一:编写配置文件,配置虚拟主机

vim /usr/local/nginx/conf/nginx.conf
 server {
        listen 80;
        server_name  www.westos.org;
location / {
                root    html;
                index   index.html;
        }
}

在这里插入图片描述

步骤二:在默认发布页面下下载一张图片
在这里插入图片描述
步骤三:检查语法,开启nginx服务

nginx -t
nginx 

在这里插入图片描述
真机(客户端)测试
在这里插入图片描述

2、防盗链(server1不让server2盗取它自己的资源)

在防盗链服务端(server1)上
步骤一:编辑配置文件,添加防盗链

   server {
        listen 80;
        server_name  www.westos.org;  #虚拟主机
        location / {
                root    html;
                index   test.png;
        }
        location ~* \.(gif|jpg|png|jpeg)$ {   #访问图片时
             root html;   
             valid_referers none blocked www.westos.org;   #不是来自网站的直接访问时,不做禁止
             if ($invalid_referer){
                 rewrite ^/ http://bbs.westos.org/daolian.png; #当请求来自于网站,则直接重定向
            }
         }
}

在这里插入图片描述
步骤二:创建访问目录,下载图片做测试,并重启服务

mkdir /bbs
cd /bbs
ls
	daolian.png
cd /usr/local/nginx/html/
ls
	 test.png
nginx -s reload

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
真机(客户端)测试
在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值