zoukankan      html  css  js  c++  java
  • Nginx的站点目录及文件URL的访问控制

    1、根据扩展名限制程序和文件访问:

      web2.0时代,绝大多数网站都是以用户为中心的,这些产品有一些共同点,就是不允许用户发布内容到服务器,还允许用户发图片甚至附件上传到服务器上,给用户开启了上传的功能。带来了很大的安全隐患。

      下面将利用nginx配置禁止访问上传资源目录下的PHP,SHELL,PERL,PYTHON程序文件,这样就算是用户上传了木马文件也没办法执行

    location ~ ^/images/.*\.(php|php5|.sh|.pl|.py)$
                   {
                             deny all;
                   }
    location ~ ^/static/.*\.(php|php5|.sh|.pl|.py)$
                   {
                        deny all;
                   }
    location ~* ^/data/(attachment|avatar)/.*\.(php|php5)$
               {
                       deny all;
               }

    2、禁止访问指定目录下的所有文件和目录:

      配置禁止访问指定的单个或多个目录

    location ~ ^/(static)/ {
            deny all;
    }
    
     
    
    location ~ ^/static {
            deny all;
    }
    

      禁止访问目录并且返回代码404

    server {
    
            listen       80;
    
            server_name  www.brian.org;
    
            root   /opt/nginx/html;
    
            index  index.html index.htm;
    
            access_log logs/brian.log main gzip buffer=128k flush=5s;
    
            location /admin/ { return 404; }
    
            location /templates/ { return 403; }
    
    }

    3、限制网站来源的IP访问: 

      使用ngx_http_access_module限制网站来源IP访问。

      范例1:禁止外界访问,但允许某个IP访问该目录

    location ~ ^/brian/ {
    
           allow 202.111.12.211;
    
           deny all;
    
    }
    

      范例2:限制及指定IP或IP段访问

    location / {
    
           deny 192.168.1.1;
    
           allow 192.168.1.0/24;
    
           allow 10.1.1.0/16;
    
           deny all;
    
    }

    4、配置nginx禁止非法域名解析访问企业网站:

      问题:nginx如何防止用户IP访问网站(恶意域名解析,相当于直接使用IP访问网站)

      方法1:直接报错,用户体验不好

    server {
    
    listen 80 default_server;
    
    server_name _;
    
    return 501;
    
    }
    

      方法2:通过301跳转到主页

    server {
    
    listen 80 default_server;
    
    server_name _;
    
    rewrite ^(.*) http//:blog.brian.com/$1 permanent;
    
    }
    

      

  • 相关阅读:
    android测试点汇总
    Java Web应用调优线程池
    大型网站架构技术一览
    如何用消息系统避免分布式事务
    VMware Tools安装
    Git
    构架分布式队列编程
    排序算法概述
    ThreadLocal使用和原理
    JVM常用参数配置
  • 原文地址:https://www.cnblogs.com/brianzhu/p/8656678.html
Copyright © 2011-2022 走看看