这两天接到个需求,就是去除http响应中的Server头信息,说是容易被黑客利用进行有针对的攻击,这个理由很充分,还是要安排上。

我们的http是nginx做的反向代理,于是需求就变成了 Nginx去除 HTTP Server头
查找了一番,大部分都是隐藏nginx版本
server_tokens off;
配置类似于:
user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; http { keepalive_timeout 65; types_hash_max_size 2048; server_tokens off; server { ... ... } }
但是返回给客户端的信息,还是存在Nginx服务器类型信息(虽然没有透露版本了):

这个不能解决根本问题,因为黑客可以对nginx进行猜测,如果被猜中版本,还是很容易被攻击,想看看有没有彻底去掉server头的办法,结果还真找到了
后来经过详细了解,这个步骤要重新编译nginx,在编译时加入所需的模块来实现去除server头功能,和升级步骤大差不差,那就干脆顺便升级下nginx吧
这么一综合,需求就变成了nginx升级并去除http响应中的Server头信息
升级中也踩了不少坑,特地记录下,以备日后查看
首先介绍下模块:
组件:headers-more-nginx-module
GitHub: https://github.com/openresty/headers-more-nginx-module