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 相关文章推荐
模拟xcopy的函数
Oct 09 PHP
Php+SqlServer实现分页显示
Oct 09 PHP
使用bcompiler对PHP文件进行加密的代码
Aug 29 PHP
深入php数据采集的详解
Jun 02 PHP
php读取纯真ip数据库使用示例
Jan 26 PHP
php中调用其他系统http接口的方法说明
Feb 28 PHP
PHP下的Oracle客户端扩展(OCI8)安装教程
Sep 10 PHP
示例详解Laravel的注册重构
Aug 14 PHP
Mac下php 5升级到php 7的步骤详解
Apr 26 PHP
PHP实现双链表删除与插入节点的方法示例
Nov 11 PHP
PHP多线程模拟实现秒杀抢单
Feb 07 PHP
PHP大文件分割分片上传实现代码
Dec 09 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数组总结篇(一)
2008/09/30 PHP
PHP的explode和implode的使用说明
2011/07/17 PHP
php编译安装php-amq扩展简明教程
2016/06/25 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
PHP输出Excel PHPExcel的方法
2018/07/26 PHP
深入理解Javascript闭包 新手版
2010/12/28 Javascript
js获取上传文件大小示例代码
2014/04/10 Javascript
JavaScript AJAX之惰性载入函数
2014/08/27 Javascript
jQuery实现倒计时按钮功能代码分享
2014/09/03 Javascript
nodejs导出excel的方法
2015/06/30 NodeJs
使用Jasmine和Karma对AngularJS页面程序进行测试
2016/03/05 Javascript
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
2016/09/15 Javascript
老生常谈angularjs中的$state.go
2017/04/24 Javascript
jQuery ajax动态生成table功能示例
2017/06/14 jQuery
vue2.0组件之间传值、通信的多种方式(干货)
2018/02/10 Javascript
js中自定义react数据验证组件实例详解
2018/10/19 Javascript
详解vue 项目白屏解决方案
2018/10/31 Javascript
一个Java程序猿眼中的前后端分离以及Vue.js入门(推荐)
2019/04/19 Javascript
javascript定时器的简单应用示例【控制方块移动】
2019/06/17 Javascript
解决layer弹出层自适应页面大小的问题
2019/09/16 Javascript
微信小程序获取当前位置和城市名
2019/11/13 Javascript
vue-iview动态新增和删除的方法
2020/06/17 Javascript
[56:20]LGD vs VP Supermajor 败者组决赛 BO3 第三场 6.10
2018/07/04 DOTA
[02:13] 完美世界DOTA2联赛PWL DAY5集锦
2020/11/03 DOTA
Python argparse模块使用方法解析
2020/02/20 Python
Python爬虫自动化爬取b站实时弹幕实例方法
2021/01/26 Python
Python如何telnet到网络设备
2021/02/18 Python
软件测试工程师结构化面试题库
2016/11/23 面试题
应聘护士自荐信
2013/10/21 职场文书
公司薪酬管理制度
2014/01/31 职场文书
购房协议书范本
2014/04/11 职场文书
支部书记四风对照材料
2014/08/28 职场文书
2014年单位工作总结范文
2014/11/27 职场文书
小学学习委员竞选稿
2015/11/20 职场文书
2019新学期家长会工作计划
2019/08/21 职场文书
python自动统计zabbix系统监控覆盖率的示例代码
2021/04/03 Python