在默认的情况下, HTTP 的 Header 会包含了 Web Server 及 PHP 的版本, 基于安全理由, 可以用以下方法隐藏 Apache, Nginx 及 PHP 的版本资讯。
Apache
开启 Apache 的 httpd.conf, CentOS 默认位置是 /etc/httpd/conf/httpd.conf:
# vi /etc/httpd/conf/httpd.conf
找到 “ServerTokens” 的一行, 如果没有这一行便直接加入到最后面, 默认值是 “Full”, 即显示所有版本资讯, 可以改成这样:
|
1 |
ServerTokens Prod |
修改后需要重新启动 Apache:
# systemctl restart httpd
PHP
隐藏 PHP 版本需要修改 php.ini 档案, 在 RHEL, CentOS 及 Fedora, php.ini 的默认位是 /etc/php.ini, 如果不确定 php.ini 的位置, 可以用以下指令找出:
# php -i | grep “Loaded Configuration File”
知道 php.ini 的位置后, 用文字编辑器开启:
vi /etc/php.ini
找出以下一行:
expose_php = On
将 On 改为 Off, 档头便会将 X-Powered-By:PHP/7.x.x 的版本隐藏:
expose_php = Off
储存 php.ini 后重新启动 Apache:
# systemctl restart httpd
Nginx
开启 Nginx 的设定档 nginx.conf, CentOS 下的默认位置是 /etc/nginx/conf.d/nginx.conf
# vi /etc/nginx/conf.d/nginx.conf
在 http 段落加入 server_tokens off;
例如:
|
1 2 3 4 5 6 7 |
http { ...... 其他设定 server_tokens off; ...... 其他设定 } |
修改完成后, 重新启动 Nginx:
# systemctl restart nginx
之后便不会有 Nginx 的版本资讯了。