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 相关文章推荐
台湾中原大学php教程孙仲岳主讲
Jan 07 PHP
解析PHP自带的进位制之间的转换函数
Jun 08 PHP
解析如何在PHP下载文件名中解决乱码的问题
Jun 20 PHP
php连接odbc数据源并保存与查询数据的方法
Dec 24 PHP
WordPress主题制作之模板文件的引入方法
Dec 28 PHP
php实现图片上传时添加文字和图片水印技巧
Apr 18 PHP
PHP中文字符串截断无乱码解决方法
Oct 10 PHP
PHP常见数组排序方法小结
Aug 20 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
Oct 03 PHP
PHP使用递归按层级查找数据的方法
Nov 10 PHP
PHP开发api接口安全验证操作实例详解
Mar 26 PHP
PHP实现随机发放扑克牌
Apr 21 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
不用iconv库的gb2312与utf-8的互换函数
2006/10/09 PHP
第1次亲密接触PHP5(1)
2006/10/09 PHP
PHP 计算代码执行耗时的代码修正网上普遍错误
2011/05/14 PHP
PHP学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
CI框架中$this->load->library()用法分析
2016/05/18 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
2019/07/26 PHP
Dojo 学习笔记入门篇 First Dojo Example
2009/11/15 Javascript
基于Jquery的简单&简陋Tabs插件代码
2010/02/09 Javascript
基于JQuery 的消息提示框效果代码
2011/07/31 Javascript
jquery中$.post()方法的简单实例
2014/02/04 Javascript
JavaScript中的索引数组、关联数组和静态数组、动态数组讲解
2014/11/08 Javascript
Bootstrap 粘页脚效果
2016/03/28 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
2016/06/09 Javascript
react.js使用webpack搭配环境的入门教程
2017/08/14 Javascript
Angularjs单选框相关的示例代码
2017/08/17 Javascript
JS实现闭包中的沙箱模式示例
2017/09/07 Javascript
Vue2.0中集成UEditor富文本编辑器的方法
2018/03/03 Javascript
Vue源码解读之Component组件注册的实现
2018/08/24 Javascript
javascript实现blob加密视频源地址的方法
2019/08/08 Javascript
JavaScript接口实现方法实例分析
2020/05/16 Javascript
Vue页面手动刷新,实现导航栏激活项还原到初始状态
2020/08/06 Javascript
如何利用JS将手机号中间四位变成*号
2020/09/29 Javascript
[05:53]敌法师的金色冠名ID"BurNIng",是传说,是荣耀
2020/07/11 DOTA
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
2018/12/05 Python
Python 实现两个服务器之间文件的上传方法
2019/02/13 Python
手把手教你使用Python创建微信机器人
2019/04/29 Python
详解Python中string模块除去Str还剩下什么
2020/11/30 Python
医学院护理专业应届生求职信
2013/11/12 职场文书
超市周年庆活动方案
2014/08/16 职场文书
我们的节日中秋活动方案
2014/08/19 职场文书
村委会贫困证明范文
2014/09/21 职场文书
电力工程合作意向书
2015/05/11 职场文书
2015年银行信贷员工作总结
2015/05/19 职场文书
论文评审意见
2015/06/05 职场文书
漫画「你在春天醒来」第10卷封面公开
2022/03/21 日漫
Vue深入理解插槽slot的使用
2022/08/05 Vue.js