如何保护PHP网站免受服务器Banner抓取攻击
你已经添加的ServerTokens Prod和ServerSignature Off是正确的基础配置,但可能还有几个环节需要完善,确保彻底隐藏服务器和PHP的敏感信息:
1. 确认Apache配置的正确性与生效
- 首先检查配置文件路径:部分Linux发行版(比如Debian/Ubuntu)的Apache主配置文件是
/etc/apache2/apache2.conf,而非httpd.conf,如果你的系统属于这类,需要确保修改的是正确的文件。 - 修改完成后必须重启Apache服务,执行对应命令:
- Debian/Ubuntu系:
systemctl restart apache2 - RHEL/CentOS系:
systemctl restart httpd
- Debian/Ubuntu系:
- 验证配置效果:用
curl -I 你的网站域名或服务器IP查看响应头,正常情况下Server字段只会显示Apache,不会包含具体版本、操作系统等信息。
2. 隐藏PHP版本信息
PHP7默认会在响应头中添加X-Powered-By: PHP/7.x.x字段,这也会暴露版本信息,需要修改PHP配置:
- 找到PHP的配置文件
php.ini,路径通常为:- Debian/Ubuntu系:
/etc/php/7.x/apache2/php.ini(x为具体子版本号,比如7.4) - RHEL/CentOS系:
/etc/php.ini
- Debian/Ubuntu系:
- 将配置项
expose_php = On修改为expose_php = Off - 重启Apache服务使配置生效
3. 额外加固措施
- 如果网站使用了
.htaccess文件,可以在文件中添加ServerTokens Prod和ServerSignature Off,确保虚拟主机或目录层面的配置覆盖。 - 关闭PHP错误信息的浏览器输出:在
php.ini中设置display_errors = Off,同时开启错误日志记录log_errors = On,将错误信息写入指定日志文件(比如error_log = /var/log/php_errors.log),避免泄露服务器环境细节。
内容的提问来源于stack exchange,提问作者Raj Preeti
相关产品推荐
相关产品推荐

