最近提示说有漏洞,暴露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