HTTP头隐藏PHP版本号实现过程解析


Posted in PHP onDecember 09, 2020

PHP 配置默认允许服务器在 HTTP 响应头 X-Powered-By 中显示安装在服务器上的 PHP 版本。出于服务器安全原因(虽然不是主要的要担心的威胁),建议你禁用或隐藏此信息,避免那些针对你的服务器的攻击者知道你是否运行了 PHP。在本文中,我们将解释如何隐藏或关闭服务器 HTTP 响应头中的 PHP 版本号。

PHP 配置默认允许服务器在 HTTP 响应头 X-Powered-By 中显示安装在服务器上的 PHP 版本。

出于服务器安全原因(虽然不是主要的要担心的威胁),建议你禁用或隐藏此信息,避免那些针对你的服务器的攻击者知道你是否运行了 PHP。

假设你服务器上安装的特定版本的 PHP 具有安全漏洞,而攻击者了解到这一点,他们将更容易利用漏洞并通过脚本访问服务器。

在我以前的文章中,我已经展示了如何隐藏 apache 版本号,你已经看到如何不再显示 apache 的安装版本。但是如果你在你的 apache 服务器上运行 PHP,你还需要隐藏 PHP 的安装版本,这我们将在本文中展示。

因此,在本文中,我们将解释如何隐藏或关闭服务器 HTTP 响应头中的 PHP 版本号。

此设置可以在加载的 PHP 配置文件中配置。如果你不知道此配置文件在服务器上的位置,请运行以下命令找到它:

$ php -i | grep "Loaded Configuration File"

PHP 配置文件位置

---------------- 在 CentOS/RHEL/Fedora 上----------------
Loaded Configuration File => /etc/php.ini
---------------- 在 Debian/Ubuntu/Linux Mint 上----------------
Loaded Configuration File => /etc/php/7.0/cli/php.ini

在对 PHP 配置文件进行任何更改之前,我建议您首先备份您的 PHP 配置文件,如下所示:

----------------在 CentOS/RHEL/Fedora 上----------------
$ sudo cp /etc/php.ini /etc/php.ini.orig
---------------- 在 Debian/Ubuntu/Linux Mint 上----------------
$ sudo cp /etc/php/7.0/cli/php.ini /etc/php/7.0/cli/php.ini.orig

用你最喜欢的编辑器,使用超级用户权限打开文件:

---------------- 在 CentOS/RHEL/Fedora 上----------------
$ sudo vi /etc/php.ini
----------------在 Debian/Ubuntu/Linux Mint 上----------------
$ sudo vi /etc/php/7.0/cli/php.ini

定位到关键词 expose_php,并将值设置成 Off:

expose_php = Off

保存并退出文件。之后,重启 web 服务器:

---------------- 使用 SystemD ----------------
$ sudo systemctl restart httpd 或
$ sudo systemctl restart apache2
---------------- 使用 SysVInit ----------------
$ sudo service httpd restart 或
$ sudo service apache2 restart

最后,不过同样重要,使用下面的命令检查服务器 HTTP 响应头是否仍然显示你的 PHP 版本号。

lynx -head -mime_header http://localhost

或者

$ lynx -head -mime_header http://server-address

这里的标志含义是:

-head ? 发送一个请求 mime 报头的 HEAD 请求。
-mime_header ? 打印所提取文档的 MIME 标头及其源代码。

注意: 确保你系统中已经安装了命令行 web 浏览器 lynx。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
打造计数器DIY三步曲(中)
Oct 09 PHP
基于数据库的在线人数,日访问量等统计
Oct 09 PHP
PHP 引用是个坏习惯
Mar 12 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
Jul 08 PHP
ThinkPHP标签制作教程
Jul 10 PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
Dec 22 PHP
php基于GD库画五星红旗的方法
Feb 24 PHP
CodeIgniter读写分离实现方法详解
Jan 20 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
Jul 19 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
Feb 06 PHP
php支付宝系列之电脑网站支付
May 30 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
Feb 29 PHP
PhpStorm连接服务器并实现自动上传功能
Dec 09 #PHP
PHP大文件分割分片上传实现代码
Dec 09 #PHP
PHP rsa加密解密算法原理解析
Dec 09 #PHP
PHP如何解决微信文章图片防盗链
Dec 09 #PHP
PHP sdk文档处理常用代码示例解析
Dec 09 #PHP
PHP sdk实现在线打包代码示例
Dec 09 #PHP
基于PHP实现生成随机水印图片
Dec 09 #PHP
You might like
PHP登陆后跳转到登陆前页面实现思路及代码
2014/01/17 PHP
php获取参数的几种方法总结
2014/02/18 PHP
帝国cms常用标签汇总
2015/07/06 PHP
twig里使用js变量的方法
2016/02/05 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
yii2 url重写并隐藏index.php方法
2018/12/10 PHP
一个可以显示阴历的JS代码
2007/03/05 Javascript
jQuery 解析xml文件
2009/08/09 Javascript
Javascript图像处理—虚拟边缘介绍及使用方法
2012/12/27 Javascript
Jquery中使用setInterval和setTimeout的方法
2013/04/08 Javascript
JQueryEasyUI datagrid框架的基本使用
2013/04/08 Javascript
checkbox设置复选框的只读效果不让用户勾选
2013/08/12 Javascript
js快速排序的实现代码
2013/12/08 Javascript
JavaScript将页面表格导出为Excel的具体实现
2013/12/27 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
2016/04/29 Javascript
浅谈JavaScript中promise的使用
2017/01/11 Javascript
详解vue在项目中使用百度地图
2019/03/26 Javascript
vue改变对象或数组时的刷新机制的方法总结
2019/04/24 Javascript
解决vue-cli webpack打包开启Gzip 报错问题
2019/07/24 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
浅谈vue限制文本框输入数字的正确姿势
2019/09/02 Javascript
JS实现联想、自动补齐国家或地区名称的功能
2020/07/07 Javascript
Python的Django框架中的select_related函数对QuerySet 查询的优化
2015/04/01 Python
Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
2018/09/14 Python
解决springboot yml配置 logging.level 报错问题
2020/02/21 Python
提高python代码运行效率的一些建议
2020/09/29 Python
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
2015/11/18 面试题
启动一个线程是用run()还是start()
2016/12/25 面试题
人力资源管理专业毕业生自我评价
2013/09/21 职场文书
优秀团员个人的自我评价
2013/10/02 职场文书
2014年预备党员端正入党动机思想汇报
2014/09/13 职场文书
公司年会开场白
2015/06/01 职场文书
退休职工欢送会致辞
2015/08/01 职场文书
《走遍天下书为侣》教学反思
2016/02/22 职场文书
redis cluster支持pipeline的实现思路
2021/06/23 Redis
MySQL query_cache_type 参数与使用详解
2021/07/01 MySQL