zoukankan      html  css  js  c++  java
  • Nginx作为web静态资源服务器——防盗链

    基于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,可正常访问

  • 相关阅读:
    Maven仓库是什么
    什么是Maven
    Shiro 的优点
    shiro有哪些组件
    Python偶斐波那契数
    Python求1000以内所有3或5的倍数的和。
    python"TypeError: 'NoneType' object is not iterable"错误解析
    python中列表常用的几个操作函数
    反射类的一些基本用法
    循环随机数短时间内大多都是重复的问题
  • 原文地址:https://www.cnblogs.com/joy-sir/p/12162538.html
Copyright © 2011-2022 走看看