Bootstrap

nginx-- port_in_redirect off配置服务器造成 很大的威胁,后端端口暴露出来

第一篇   nginx--  port_in_redirect off配置服务器造成 很大的威胁,后端端口暴露出来

规则描述:

可以从Nginx的核心模块中得知,如果请求发生重定向,Nginx默认的情况下,是会在重定向的URL后自动添加Nginx当前站点监听的端口。这样明显会对服务器造成 很大的威胁,后端端口暴露出来,就可能会被人直接对这个端口进行诸如CC类攻击。

根据:

审计描述:

检查nginx.conf文件,是否存在以下配置:

http {

   ...

#Nginx will not add the port in the url when the request is redirected

   #port_in_redirect off;

   ...

   Server {

   ...

}

...

}

 

修改建议:

1、在配置文件Nginx.conf中的http段、或server段或location端增加禁止指令,建议在http段添加,如下:

http {

   ...

   #Nginx will not add the port in the url when the request is redirected

   port_in_redirect off;

   ...

   Server {

      ...

  }

...

}

检测用例信息:

检测描述

期望结果

检测结果

检查重定向至监听端口是否被禁用

--

http { port_in_redirect on; }

 

 

第二篇    nginx的port_in_redirect配置

本文主要讲解下port_in_redirect的实际用途。

场景

有一个80端口的nginx,要转发一个路径到另一个8080端口的nginx,配置如下

server {
        listen       80  default_server;
        server_name demoapp.com.cn;
        location /public/ {
            proxy_pass http://192.168.99.100:8080/public/ ;
        }
}
另外一个nginx的配置如下
server {
        listen       8080  default_server;
		location ~* /public/(share|webview) {
            root   html ;
            proxy_buffering off;
            index  index.html index.htm;
        }
}

 

html目录里头有个public目录,public目录里头有share以及webview目录,存放各个子模块的静态资源。

问题

这样配置了之后,通过demoapp.com.cn/public/share访问的时候,会跳转到demoapp.com.cn:8080/public/share

假设这两个nginx监听同一个ip,如果不是同一个ip,估计要配置server_name以及开启server_name_in_redirect

这个时候,port_in_redirect就派上用场了。

server {
        listen       8080  default_server;
		location ~* /public/(share|webview) {
            root   html ;
            proxy_buffering off;
            port_in_redirect off;
            index  index.html index.htm;
        }
}

 

通过指定port_in_redirect off;告知nginx在redirect的时候不要带上port,如果没有配置,默认该值为true

doc

相关资源:Nginx端口映射配置方法_nginx端口转发,nginx配置接口转发-其它...

 

 

 

 

 

 

;