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

    利用Nginx进行来源地址拦截,只要来源地址符合原资源地址,则可以访问,否则返回403状态码或返回固定地址
              

    server {
                    listen       80;
                    server_name  fdl.chx.com;
    
                    #charset koi8-r;
    
                    #access_log  logs/host.access.log  main;
    
                    #拦截所有关于jpg|jpeg|JPG|png|gif|icon格式的请求
                    location ~ .*.(jpg|jpeg|JPG|png|gif|icon)$ {
                        #验证blocked来源地址不为空并且符合referers配置的地址
                        #none允许来源地址为空
                        valid_referers blocked http://fdl.chx.com/a fdl.chx.com/a;
                        #如果不符合则会return 403
                        if ($invalid_referer) {
                     #配置返回地址或图片
                            rewrite ^/ http://www.a.com:8080/a/img/ffqq.png;
                            #return 403;
                        }
                    }
                    location /a {
                        proxy_pass http://www.a.com:8080/a/;
                        index index.html index.htm;
                        
                    }
                    
                }            
    valid_referers blocked http://fdl.chx.com/a fdl.chx.com/a;
    这里的blocked 属性代表必须是以后面的地址为来源
    还有一种取值none,代表允许来源地址为空

    A工程

    aindex.jsp

    
    

    B工程

    bindex2.jsp

    
    
    


    执行效果
    1.直接访问静态资源
    http://fdl.chx.com/a/img/logo.png

    referer属性为空

    转到了我们配置的非法请求页面

    2.b工程访问a工程的静态资源

    http://www.b.com/b/bindex2.jsp

    b工程页面

    <body>
        <img src="http://fdl.chx.com/a/img/logo.png"/>
    </body>

     同样被视为非法请求

    3.a工程访问自己的资源

    http://fdl.chx.com/a/aindex.jsp

    因包含了fdl.chx.com/a,与来源地址匹配

     可以正常请求到资源

  • 相关阅读:
    连续奇数
    50:数根
    38:花生采摘
    素数对
    17:字符串判等
    2702:密码翻译
    27:单词翻转
    15:整理药名
    12:加密的病历单
    09:密码翻译
  • 原文地址:https://www.cnblogs.com/chx9832/p/12291838.html
Copyright © 2011-2022 走看看