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数组
Oct 09 PHP
dedecms采集中可以过滤多行代码的正则表达式
Mar 17 PHP
php foreach 参数强制类型转换的问题
Dec 10 PHP
使用php计算排列组合的方法
Nov 13 PHP
PHP 函数call_user_func和call_user_func_array用法详解
Mar 02 PHP
php将csv文件导入到mysql数据库的方法
Dec 24 PHP
写一段简单的PHP建立文件夹代码
Jan 06 PHP
php实现在服务器上创建目录的方法
Mar 16 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
Mar 25 PHP
PHP数组与对象之间使用递归实现转换的方法
Jun 24 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
Sep 19 PHP
在Yii2特定页面如何禁用调试工具栏Debug Toolbar详解
Aug 07 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
PHPMyadmin 配置文件详解(配置)
2009/12/03 PHP
php checkbox复选框值的获取与checkbox默认值输出方法
2010/05/15 PHP
php实现以只读方式打开文件的方法
2015/03/16 PHP
PHP静态成员变量和非静态成员变量详解
2017/02/14 PHP
jQuery的观察者模式详解
2014/12/22 Javascript
javascript数据类型示例分享
2015/01/19 Javascript
jQuery中通过ajax调用webservice传递数组参数的问题实例详解
2016/05/20 Javascript
jquery获取下拉框中的循环值
2017/02/08 Javascript
Angularjs分页查询的实现
2017/02/24 Javascript
Vue0.1的过滤代码如何添加到Vue2.0直接使用
2017/08/23 Javascript
基于Vue中点击组件外关闭组件的实现方法
2018/03/06 Javascript
AngularJS 事件发布机制
2018/08/28 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
vue实现简单图片上传
2020/06/30 Javascript
Vue Render函数创建DOM节点代码实例
2020/07/08 Javascript
antd design table更改某行数据的样式操作
2020/10/31 Javascript
Vue实现简单购物车功能
2020/12/13 Vue.js
Python中优化NumPy包使用性能的教程
2015/04/23 Python
Python实现基本线性数据结构
2016/08/22 Python
python实现日常记账本小程序
2018/03/10 Python
python内存管理机制原理详解
2019/08/12 Python
对python中 math模块下 atan 和 atan2的区别详解
2020/01/17 Python
如何从csv文件构建Tensorflow的数据集
2020/09/21 Python
纯HTML5+CSS3制作图片旋转
2016/01/12 HTML / CSS
新西兰便宜隐形眼镜购买网站:QUICKLENS New Zealand
2019/03/02 全球购物
建筑专业自我鉴定
2013/10/22 职场文书
家居设计专业个人自荐信范文
2013/11/26 职场文书
电子邮箱格式怎么写
2014/01/12 职场文书
交通安全教育制度
2014/02/02 职场文书
解除财产保全担保书
2014/05/20 职场文书
2014年向国旗敬礼活动总结
2014/09/27 职场文书
2015年外联部工作总结
2015/04/03 职场文书
2015年幼儿园保育工作总结
2015/05/12 职场文书
python读取pdf格式文档的实现代码
2021/04/01 Python
python模板入门教程之flask Jinja
2022/04/11 Python
PostgreSQL 插入INSERT、删除DELETE、更新UPDATE、事务transaction
2022/04/12 PostgreSQL