设置隐藏Web服务器Nginx/Apache/PHP软件版本
要知道一个网站运行在哪些Web组件上有很多方法,例如简单查看Nginx、Apache、PHP版本,HTTP header字段信息里就有(用curl -I
请求),或者用Wappalyzer这类浏览器扩展(更全面一些)。如果不想这么简单就暴露Web服务器软件版本,可以修改配置文件关闭版本识别信息。
如上图,默认没有配置的情况下,用Wappalyzer很容易就知道Web服务器软件版本信息。
隐藏 Nginx 版本
用nginx -V
命令查看配置文件路径,--conf-path=/etc/nginx/nginx.conf
这个参数就是。
sudo vi /etc/nginx/nginx.conf
编辑Nginx配置文件。在HTTP块内加入下面红色字符选项。
http {
...
sendfile on;
tcp_nopush on;
tcp_nodelay on;
server_tokens off;
...
}
sudo vi /etc/nginx/fastcgi.conf
修改FastCGI配置文件,将版本号参数删除(蓝色字符部分)。
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
如果php fastcgi里用的fastcgi_param,而不是配置文件,则修改/etc/nginx/fastcgi_params
文件。
sudo nginx -s reload
刷新配置使修改生效。
隐藏 Apache 版本
sudo vi /etc/apache2/conf-enabled/security.conf
修改此文件,将下面两个参数值如此设置。
ServerTokens Prod ServerSignature Off
sudo systemctl restart apache2
重启服务生效。
隐藏 PHP 版本
sudo vi /etc/php.ini
修改配置文件,找到expose_php
参数,值改为Off
。
sudo systemctl restart php-fpm
刷新配置生效。
隐藏 WordPress 版本
编辑functions.php
主题文件,在after_setup_theme
挂钩内容里加上以下这句即可。
remove_action( 'wp_head', 'wp_generator' );
设置完成,刷新网页用Wappalyzer再次查看就没有版本号了。如果还有,关闭浏览器重开查看。
也可以用curl -I 域名网址
命令查看HTTP header信息。
返回内容如下:
HTTP/1.1 200 OK Server: nginx Date: Sat, 23 Feb 2019 03:38:16 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive Link: <http://example.com/wp-json/>; rel="https://api.w.org/"