nginx中的盗链与防盗链

1.什么是盗链?

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

2.盗链分类

网站盗链会大量消耗被盗链网站的带宽,而真正的点击率也许会很小,严重损害了被盗链网站的利益
早期的盗链一般是一些比较小的网站盗取一些有实力的大网站的地址,盗链的目标比较有针对性
现如今,一些大型的网站也已经开始把盗链的目光锁定在了整个互联网上,窃取整个互联网上的其它机器的带宽
常见的盗链有以下几种:图片盗链、音频盗链、视频盗链、文件盗链
一般被访问浏览的页面并不是一次全部传送到客户端的
如果客户请求的是一个带有许多图片和其它信息的页面,那么最先的一个HTTP 请求被传送回来的是这个页面的HTML文本
客户端浏览器对这段文本解释执行后,发现其中还有其它文件,客户端浏览器会再发送一条或者更多HTTP请求
当这些请求被处理后其它文件才被传送到客户端,然后浏览器将这些文件放到页面的正确位置
一个完整的页面要经过发送多条HTTP 请求才能够被完整地显示
基于这样的机制,盗链就成为可能,服务提供商完全可以在自己的页面中嵌入别人的链接,显示在自己的页面上,以达到盗链的目的
根据盗链的形式的不同,可以简单地把盗链分成两类:常规盗链和分布式盗
常规盗链比较初级,同时也比较常见,具有一定的针对性,只盗用某个或某些网站的链接
技术含量不高,实现也比较简单,只需要在自己的页面嵌入别人的链接即可
分布式盗链是盗链的一种新的形式,系统设计复杂,难度相对较大
这种盗链一般不针对某一个网站,互联网上任何一台机器都可能成为盗链的对象
服务提供商一般会在后台设置专门程序(Spider)在Internet上抓取有用的链接, 然后存储到自己的数据库中
而对于最终用户的每次访问,都将其转化为对已有数据库的查询,被查询到的URL 就是被盗链的对象
由于对文件的访问已经被浏览器屏蔽掉了,所以最终用户感觉不到所访问的链接是被盗取的链接

3.什么是防盗链?

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

4.实验环境

主机信息主机的功能(服务)
server1(172.25.8.1)被盗链服务器
server2(172.25.8.2)盗链服务器
真机客户端

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

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

  • (1)server2主机(盗链主机)上进行的操作如下:
yum install -y gd-devel cc gcc pcre-devel zlib-devel安装基本的东西
tar zxf nginx-1.17.1.tar.gz 解压
cd nginx-1.17.1/进入解压后的目录
vim auto/cc/gcc关闭debug日志 
171 # debug
172 #CFLAGS="$CFLAGS -g"
./configure --prefix=/usr/local/nginx/  --with-http_image_filter_module=dynamic --with-http_realip_module编译
make && make install安装
cd /usr/local/nginx/conf/进入nginx服务的配置目录
vim nginx.conf编辑配置文件
 35     server {
 36         listen       80;
 37         server_name  daolian.westos.org;
 38 
 39         charset utf-8;
 40 
 41         #access_log  logs/host.access.log  main;
 42 
 43         location / {
 44             root   /web;
 45             index  index.html index.htm;
 46         }	
ln -s /usr/local/nginx/sbin/nginx  /sbin做一个软链接
nginx启动nginx服务
mkdir /web建立资源目录
vim /web/index.html
daolian.westos.org
vim /etc/hosts  # 写解析
172.25.8.2 server2 daolian.westos.org
curl daolian.westos.org # 测试
daolian.westos.org
vim /web/index.html 将内容指向server1的资源
<html>
<body>
<br>盗链图片</br>
<img src="http://www.westos.org/1.jpg">
</body>
</html>
  • (2)在server1主机(被盗链主机)上进行如下操作:
cp /usr/local/nginx/html/download/vim.jpg  /web/
ls /web/
vim.jpg
  • (3)在真机上面进行测试
vim /etc/hosts
172.25.8.2  server2  daolian.westos.org

在这里插入图片描述
其实这个图片是server1的资源

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

  • (1)在server1上面设置
cd /bbs
ls
daolian.png  index.html
cd /usr/local/nginx/conf/
vim nginx.conf
143         location ~* \.(gif|jpg|png|jpeg)$ {
144             root /web;
145             valid_referers none blocked www.westos.org;# 原是站点访问的是www.westos.otg时,不做禁止
146             if ($invalid_referer){
147                 rewrite ^/ http://bbs.westos.org/daolian.png;
148             }
149         }
150 
151     }
152 
153     server {
154         listen 80;
155         server_name bbs.westos.org;
156                 
157         location / {
158             root /bbs;
159             index index.html;
160         }

在这里插入图片描述

nginx -s reload重新加载服务
  • (2)客户端测试:警告信息
    在这里插入图片描述
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值