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;
}
