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

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

Nginx防盗链

防盗链基于客户端携带的referer实现,referer是记录打开一个页面之前记录是从哪个页面跳转过来的标记信息,如果别人只链接了自己网站的图片或某个单独的资源,而不是打开整个页面,这就是盗链,referer就是之前的那个网站域名,正常的referer信息有以下几种

none:请求报文没有referer首部,比如用户直接在浏览器输入域名访问往web网站,就是么有referer信息
blocked:请求报文由referer信息,但无又有效值为空
server_names:referer首部中包含本主机及nginx监听的server_name
arbitrary_string:自定义指定字符串,但使用作通配符
regular experssion:被指定的正则表达式模式匹配到的字符串,需要使用~开头,如:~.
.magedu.com

防盗链的实现

准备2台虚拟服务器,一个域名为www.mylinuxops.com,另一个域名为www.melinuxops.com

1.www.mylinuxops.com配置文件及站点内容

[root@localhost www]# vim /apps/nginx/conf/servers/vs.conf server {    server_name www.mylinuxops.com;    location / {        root /data/www;        index index.html;  }}

站点资源

[root@localhost www]# tree /data/www/data/www├── index.html└── tupian.gif0 directories, 2 files

2.www.melinuxops.com配置文件及站点内容

[root@localhost www]# vim /apps/nginx/conf/servers/vs.conf server {    server_name www.melinuxops.com;    location / {        root /data/www;        index index.html;  }}

站点资源

[root@localhost ~]# tree /data/www//data/www/└── index.html0 directories, 1 file[root@localhost ~]# cat /data/www/index.html    #次为盗链的文件    
盗链页面盗链测试

未设置防盗链访问测试

访问www.mylinuxops.com/tupian.gif

Nginx防盗链
访问盗链站点www.melinuxops.com
Nginx防盗链
查看日志被盗链站点日志

172.20.136.96 - - [01/Jun/2019:10:57:06 +0800] "GET /tupian.gif HTTP/1.1" 200 489620 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36" "-"172.20.136.96 - - [01/Jun/2019:10:59:11 +0800] "GET /tupian.gif HTTP/1.1" 200 489620 "http://www.melinuxops.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36" "-"#第二条日志为被盗链的日志

设置防盗链

基于访问安全考虑,nginx支持通过ngx_http_referer_module模块,检查访问者请求的referer信息是否有效,实现防盗链。

实现方法

修改www.mylinuxops.com的配置文件

[root@localhost www]# vim /apps/nginx/conf/servers/vs.conf server {    server_name www.mylinuxops.com;    access_log /apps/nginx/logs/access.log main;    location / {        root /data/www;        index index.html;        valid_referers none blocked server_names *.mylinuxops.com mylinuxopx.* ~\.google\.;        if ( $invalid_referer ){          return 403;     }  }    location = /favicon.ico {        log_not_found off;        access_log off;  }}

再次访问盗链站点

Nginx防盗链

转载于:https://blog.51cto.com/11886307/2403949

你可能感兴趣的文章
从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~目录...
查看>>
被需求搞的一塌糊涂,怎么办?
查看>>
centos 7.2编译安装nginx-1.12.0
查看>>
数据库列名使用了关键字怎么办?
查看>>
hdu 4604 Deque
查看>>
JAVA连接SQL Server
查看>>
c_数据结构_队的实现
查看>>
dom4j解析XML文件-基本curd操作示例
查看>>
连接mysql数据库,创建用户模型
查看>>
第 2 章 OpenStack 架构 - 015 - OpenStack 架构
查看>>
使用Zxing 一维码
查看>>
DirectX SDK (June 2010)安装错误S1023的一个解决方法
查看>>
新入手的Atmel-ICE产品说明
查看>>
PHP数组合并的常见问题
查看>>
Spring JDBC Pagination Tutorial
查看>>
初始Vue
查看>>
两个二分函数lower_bound和upper_bound函数
查看>>
【洛谷】P1579 哥德巴赫猜想(升级版)
查看>>
FreeSWITCH协议参数之自定义sip header
查看>>
Adobe Photoshop安装
查看>>