第一篇 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配置接口转发-其它...