首页 > Web开发 > 详细

Nginx作为web静态资源服务器——防盗链

时间:2020-01-07 17:32:35      阅读:89      评论:0      收藏:0      [点我收藏+]

技术分享图片技术分享图片?

基于http_refer防盗链配置模块

Syntax:valid_referers none | blocked | server_names | string ...;

Default:——

Context:server,location

HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。比如从我主页上链接到一个朋友那里,他的服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的链接访问他的网站。

设置防盗链的作用是为了防止,视频、图片...防止被其他网站盗用

配置语句

技术分享图片技术分享图片?

 location ~ .*\.(jpg|gif|png)$ {
        gzip on;
        gzip_http_version 1.1;
        gzip_comp_level 4;
        gzip_types text/plain application/javascript applicattion/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;


        valid_referers none blocked 192.168.96.135; # 允许跳转的ip
        if ($invalid_referer) {
             return 403;
        }
        root /opt/app/code/images;
    }
技术分享图片

one代表没有referer;blocded代表有referer但是被防火墙或者是代理给去除了。

首先当我输入我要打开的网址的时候,因为是直接输入的没有referer所以匹配了
valid_referers后面的none或者是blocked 所以invalid_referer值为0 所以不进行跳转.
当我是从这个网站里面的链接跳到该网站首页的时候 因为referer的值是肯定包含srever_names 所以匹配了server_names所以不进行跳转。
当我从搜素引擎进去的时候因为referer字段类似于www.google.com.hk/search
开始进行匹配 发现没有一个匹配,则此时会设置invalid_referer值为1 if语句成功执行,进行了跳转. 达到功能

测试

使用curl 命令

curl -e "http://192.168.96.188" -I http://192.168.96.188/test.png,报403错误

技术分享图片技术分享图片?

curl -e "http://192.168.96.135" -I http://192.168.96.188/test.png,可正常访问

技术分享图片技术分享图片?

Nginx作为web静态资源服务器——防盗链

原文:https://www.cnblogs.com/joy-sir/p/12162538.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!