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;

}

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM