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

只需要我们在nginx.conf文件的server中添加server_tokens off,例如
server {
listen 80;
server_tokens off;
location / {
...
}
}2. 405 not allowed解决办法

虽然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;
}
}效果

或者转发到302也是ok的,效果如下

到此这篇关于nginx版本号隐藏(附405 not allowed解决办法)的文章就介绍到这了,更多相关nginx版本号隐藏内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
OpenResty是什么,OpenResty和Nginx的区别?
Nginx作为一款轻量级、高性能的Web服务器,传统局限性也很明显:静态配置、逻辑扩展依赖C模块开发,使得它在需要动态业务逻辑的场景中显得捉襟见肘,<BR>而OpenResty的出现,打破了这一僵局,它通过将Lua脚本深度集成到Nginx中,将“静态代理服务器”升级为“动态应用平台”2025-04-04
Nginx 502 Bad Gateway错误常见的4种原因和解决方法
这篇文章主要介绍了Nginx 502 Bad Gateway错误常见的4种原因和解决方法,本文适用FastCGI环境,其中多数原因通过配置相关参数即可解决,需要的朋友可以参考下2015-05-05


最新评论