zoukankan      html  css  js  c++  java
  • Nginx 之防盗链配置

    首先,我们需要知道通过什么来实现防盗的!

        http referer 是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上referer,这是在告诉服务器是从哪个页面链接过来的,服务器借此可以获得一些信息用于处理;

    location /photos/ {
        valid_referers  none blocked 域名/IP;
        if ($invalid_referer) {
          return 403;
        }
    }
    

      

    Http  Referer 模块的功能有:

    valid_referers  :该指令会根据浏览器Referer header头的内容分配一个值0或1给变量$invalid_referer ;

    如果referer header 头不符合valid_referers指令设置的有效referer,变量$invalid_referer将被设置为1,那么便会执行if模块中的内容;

    该指令的参数有:

    none :默认值,表示没referer值(直接访问防盗链中的内容)的情况;

    blocked :表示referer值被防火墙伪装;

    server_names :表示一个或者多个主机名称,从nginx0.5.33版本开始,server_names中可以使用通配符*;

    我们通过一个例子来更深彻的来了解一下防盗链吧!

    location ~* .(gif|jpg|jpeg|png|bmp|swf|flv)$ {
         valid_referers none blocked 域名/IP;
         if ($invalid_referer) {
             rewrite ^/ http://www.afeige.cn/404.html;
             #return 404;
         }
     }
    

      

    第一行:表示对以   gif|jpg|jpeg|png|bmp|swf|flv  结尾的文件进行防盗链;

    第二行:表示对  域名/IP   这个来路进行判断

    if{}里面内容的意思是,如果来路不是指定来路就跳转到错误页面,当然直接返回404也是可以的呀!

    若  valid_referers none blocked 域名/IP;   中,none 存在;那么在浏览器直接访问域名下的该文件依然也可以访问

    为了达到即使在浏览器中输入正确的图片路径,也不允许访问的状态;那么把none删除掉就Ok了!

    成功的路总是越来越窄,然后越来越宽。如果轻易就成功了岂不是没意思了。

  • 相关阅读:
    查找第一个不重复的字符问题
    gops
    关于 Go 中 Map 类型和 Slice 类型的传递
    Go 程序的性能优化及 pprof 的使用
    Go语言标准库_输入/输出
    Linux 终端 Bash 常用快捷键介绍及经验
    蓄水池采样算法(Reservoir Sampling)
    Guice 依赖绑定
    基本动态规划之硬币问题
    程序打包成jar 获取不到工程目录下文件的问题
  • 原文地址:https://www.cnblogs.com/afeige/p/9852683.html
Copyright © 2011-2022 走看看