nginx版本号隐藏(405 not allowed解决办法)

背景

项目安全测试发现405页面暴露了nginx版本,其相关版本号泄露时攻击者会利用相应软件版本的当前漏洞,进行有效的相应攻击。所以需要我们做好版本号的隐藏。

解决办法

1.nginx版本隐藏

nginx版本号隐藏(405 not allowed解决办法)_第1张图片
只需要我们在nginx.conf文件的server中添加server_tokens off,例如

server {
    listen       80;
    server_tokens off;
   
    location / {
   		 ...
   }
 }

2. 405 not allowed解决办法

nginx版本号隐藏(405 not allowed解决办法)_第2张图片
虽然server_tokens off;已经将版本号隐藏,但是405页面依旧暴露了版本号,这已然是有问题的。
网上通用的方法讲的不够详细,下面的方法亲测有效。我这边采用的是405时与200等效处理,避免405页面的展示,或者你也可以转发到其他静态页面也是ok的。
例如

server {
    listen       80;
    server_tokens off;
   
    location / {
   		proxy_intercept_errors on;   #必须配置这行命令,否则不会生效
        error_page 405 =200 @405;    
   }

 location @405 {
        proxy_pass http://+转发的后端ip+端口号+$request_uri;  
        #例如proxy_pass http://127.0.0.1:3000$request_uri;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;      
     }
 }

效果
nginx版本号隐藏(405 not allowed解决办法)_第3张图片
或者转发到302也是ok的,效果如下
nginx版本号隐藏(405 not allowed解决办法)_第4张图片

你可能感兴趣的:(运维,笔记,nginx,运维)