设置隐藏Web服务器Nginx/Apache/PHP软件版本

Kevin 教程 567 次浏览 抢沙发

要知道一个网站运行在哪些Web组件上有很多方法,例如简单查看Nginx、Apache、PHP版本,HTTP header字段信息里就有(用curl -I请求),或者用Wappalyzer这类浏览器扩展(更全面一些)。如果不想这么简单就暴露Web服务器软件版本,可以修改配置文件关闭版本识别信息。

查看服务器Nginx/PHP软件版本号

如上图,默认没有配置的情况下,用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再次查看就没有版本号了。如果还有,关闭浏览器重开查看。

隐藏服务器Nginx/PHP软件版本号

也可以用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/"

发表评论

电邮地址用于 Gravatar 头像显示,不会被公开可见。