首页 技术 正文
技术 2022年11月16日
0 收藏 976 点赞 2,918 浏览 2952 个字

一盗链

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

  1 172.24.10.21good.odocker.com
2 172.24.10.22 steal.uclouda.com
3 [root@nginx0X ~]# nginx -V
4 nginx version: nginx/1.16.1

2.3模拟盗链

  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 }
  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

  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 }
  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>
  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

  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 }
  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

      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 }

    配置释义:rewrite:判断如果不是白名单第五行则进行重定向到自定义的固定链接。浏览器访问盗链网站:http://steal.uclouda.com/

    相关推荐
    python开发_常用的python模块及安装方法
    adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
    日期:2022-11-24 点赞:878 阅读:9,031
    Educational Codeforces Round 11 C. Hard Process 二分
    C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
    日期:2022-11-24 点赞:807 阅读:5,520
    下载Ubuntn 17.04 内核源代码
    zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
    日期:2022-11-24 点赞:569 阅读:6,368
    可用Active Desktop Calendar V7.86 注册码序列号
    可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
    日期:2022-11-24 点赞:733 阅读:6,148
    Android调用系统相机、自定义相机、处理大图片
    Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
    日期:2022-11-24 点赞:512 阅读:7,781
    Struts的使用
    一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
    日期:2022-11-24 点赞:671 阅读:4,860