博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nginx网站防盗链
阅读量:7094 次
发布时间:2019-06-28

本文共 1955 字,大约阅读时间需要 6 分钟。

nginx模块ngx_http_referer_module通常用于阻挡来源非法的域名请求,我们应该牢记。下面这篇文章主要介绍了nginx利用referer指令实现防盗链配置的相关资料。

实现图片防盗链 实例

location ~* \.(gif|jpg|png|webp)$ {        root /opt/www/image;             valid_referers none blocked domain.com *.domain.com server_names ~\.google\. ~\.baidu\.;                if ($invalid_referer) {                    return 403;                    #rewrite ^/ http://www.domain.com/403.jpg;                }       #如果不是默认nginx目录就需要重新配置,否则报404的错误     }
  • 以上所有来至domain.com和域名以及baidu和google的站点都可以访问到当前站点的图片,如果来源域名不在这个列表中,那么$invalid_referer等于1,在if语句中返回一个403给用户,这样用户便会看到一个403的页面,如果使用下面的rewrite,那么盗链的图片都会显示403.jpg。
  • none规则实现了允许空referer访问,即当直接在浏览器打开图片,referer为空时,图片仍能正常显示.如果不是域名是以IP地址的形式进行访问,直接写IP地址即可。

测试:

[root@loya ~]# curl -I http://qingkang.me/1.jpg -H 'Referer:http://www.baidu.com'  #-I选项查看报文首部,-H指定请求报文头部信息    HTTP/1.1 200 OK    Server: nginx/1.8.1    Date: Fri, 16 Dec 2016 14:56:51 GMT    Content-Type: image/jpeg    Content-Length: 17746    Last-Modified: Tue, 16 Aug 2016 03:20:21 GMT    Connection: keep-alive    ETag: "57b28675-4552"    Accept-Ranges: bytes    [root@loya ~]# curl -I http://qingkang.me/1.jpg -H 'Referer:http://www.qq.com'    HTTP/1.1 403 Forbidden    Server: nginx/1.8.1    Date: Fri, 16 Dec 2016 14:56:58 GMT    Content-Type: text/html; charset=utf-8    Content-Length: 168    Connection: keep-alive

指令:

语法: valid_referers none | blocked | server_names | string …;    配置段: server, location    指定合法的来源'referer', 他决定了内置变量$invalid_referer的值,如果referer头部包含在这个合法网址里面,这个变量被设置为0,否则设置为1. 需要注意的是:这里并不区分大小写的.

参数说明:

none :“Referer” 为空         blocked :“Referer”不为空,但是里面的值被代理或者防火墙删除了,这些值都不以http://或者https://开头,而是“Referer: XXXXXXX”这种形式    server_names :“Referer”来源头部包含当前的server_names(当前域名)    arbitrary string :任意字符串,定义服务器名或者可选的URI前缀.主机名可以使用*开头或者结尾,在检测来源头部这个过程中,来源域名中的主机端口将会被忽略掉    regular expression: 正则表达式,~表示排除https://或http://开头的字符串.

注意:通过Referer实现防盗链比较基础,仅可以简单实现方式资源被盗用。构造Referer的请求很容易实现

转载于:https://blog.51cto.com/13598893/2090570

你可能感兴趣的文章
用艾宾浩斯曲线记忆周期来背单词是否有理论依据?
查看>>
分布式搜索elasticsearch单机与服务器环境搭建
查看>>
[转]云计算之hadoop、hive、hue、oozie、sqoop、hbase、zookeeper环境搭建及配置文件
查看>>
80.禁用消休眠功能
查看>>
堡垒(fortress)
查看>>
用UIImagePickerViewController自定义相机界面
查看>>
关于在系统中插入视频聊天的功能问题
查看>>
Leetcode#114Flatten Binary Tree to Linked List
查看>>
七牛云冯立元:边缘存储的演进之路
查看>>
详解用户,组,权限管理
查看>>
Linux基础命令---slabtop
查看>>
基于RabbitMQ RPC实现的主机异步管理
查看>>
PHP-学习笔记-进阶
查看>>
自动化安装linux--cobbler
查看>>
利用spaCy和Cython实现高速NLP项目
查看>>
手动启动Tomcat服务
查看>>
Citrix Netscaler/AG结合DKEY短信动态密码认证方案
查看>>
我的友情链接
查看>>
Android灵动分析入门指南
查看>>
mysql ibdata file
查看>>