隐藏Apache、nginx和PHP的版本号的配置方法

时间:2021-06-16 18:03:05

最近提示说有漏洞,暴露apache、nginx和php的版本号。网上搜了下,整理的方法如下:

首先说apache

在http.conf文件里添加下面两行,默认是没有的

ServerSignature Off
ServerTokens Prod

ServerSignature出现在Apache所产生的像404页面、目录列表等页面的底部。ServerTokens目录被用来判断Apache会在Server HTTP响应包的头部填充什么信息。如果把ServerTokens设为Prod,那么HTTP响应包头就会被设置成:Server:Apache

nginx的版本号隐藏有两地方需要修改

1、nginx.conf 文件里的http内部,主要是加上 server_tokens off;

http {
# ...省略一些配置
server_tokens off;
}

2、修改php-fpm的配置文件,需要查看下包含的文件名,默认是fastcgi.conf 文件。

fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;

修改为

fastcgi_param SERVER_SOFTWARE nginx;

3、重启服务器就可以了

nginx -s reload

最后说下php的版本隐藏

http的版本信息一般是暴露在http头部,一般以类似X-Powered-By: PHP/5.2.11这种形式出现。只需修改php.ini文件的 expose_php = On 为 expose_php = Off;就可以了。

然后重新加载php

phpfpm reload