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 和 MySQL 开发的 8 个技巧
Jan 02 PHP
快速配置PHPMyAdmin方法
Jun 05 PHP
PHP 编程的 5个良好习惯
Feb 20 PHP
PHP 页面跳转到另一个页面的多种方法方法总结
Jul 07 PHP
php利用反射实现插件机制的方法
Mar 14 PHP
php给每个段落添加空格的方法
Mar 20 PHP
apache php mysql开发环境安装教程
Jul 28 PHP
PHP实现微信小程序人脸识别刷脸登录功能
May 24 PHP
php获取微信基础接口凭证Access_token
Aug 23 PHP
PHP实现的杨辉三角求解算法分析
Mar 11 PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
Oct 01 PHP
Laravel 实现Controller向blade前台模板赋值的四种方式小结
Oct 22 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
用文本文件制作留言板提示(上)
2006/10/09 PHP
thinkphp配置文件路径的实现方法
2016/08/30 PHP
PHP符合PSR编程规范的实例分享
2016/12/21 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
2017/01/17 PHP
解决安装WampServer时提示缺少msvcr110.dll文件的问题
2017/07/09 PHP
对php 判断http还是https,以及获得当前url的方法详解
2019/01/15 PHP
PHP-FPM的配置与优化讲解
2019/03/15 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
JSON 客户端和服务器端的格式转换
2009/08/27 Javascript
简单实现js选项卡切换效果
2016/02/03 Javascript
JS控制HTML元素的显示和隐藏的两种方法
2016/09/27 Javascript
node.js路径处理方法以及绝对路径详解
2021/03/04 Javascript
文件上传插件SWFUpload的使用指南
2016/11/29 Javascript
vue实现ajax滚动下拉加载,同时具有loading效果(推荐)
2017/01/11 Javascript
angularjs $http实现form表单提交示例
2017/06/09 Javascript
vue如何使用 Slot 分发内容实例详解
2017/09/05 Javascript
node.js中http模块和url模块的简单介绍
2017/10/06 Javascript
JS实现按钮添加背景音乐示例代码
2017/10/17 Javascript
vue-cli脚手架的安装教程图解
2018/09/02 Javascript
Jquery异步上传文件代码实例
2019/11/13 jQuery
[38:51]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-CDEC
2014/05/22 DOTA
python单元测试unittest实例详解
2015/05/11 Python
python数据类型_元组、字典常用操作方法(介绍)
2017/05/30 Python
详解用Python调用百度地图正/逆地理编码API
2020/07/02 Python
利用Python实现字幕挂载(把字幕文件与视频合并)思路详解
2020/10/21 Python
shell程序中如何注释
2012/02/17 面试题
师范生实习的个人自我鉴定
2013/10/20 职场文书
优秀信贷员先进事迹
2014/01/31 职场文书
开展党的群众路线教育实践活动方案
2014/02/05 职场文书
大三学生学年自我鉴定
2014/09/12 职场文书
倡议书作文
2015/01/19 职场文书
结婚当天新郎保证书
2015/05/08 职场文书
2016春季幼儿园开学寄语
2015/12/03 职场文书
《祁黄羊》教学反思
2016/02/20 职场文书
2019年中学生的思想品德评语集锦
2019/12/19 职场文书