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 相关文章推荐
基于mysql的论坛(5)
Oct 09 PHP
php microtime获取浮点的时间戳
Feb 21 PHP
php allow_url_include的应用和解释
Apr 22 PHP
PHP通用检测函数集合
Feb 08 PHP
Zend Studio 实用快捷键一览表(精心整理)
Aug 10 PHP
php生成不重复随机数、数组的4种方法分享
Mar 30 PHP
PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结
Sep 14 PHP
php无限级分类实现方法分析
Oct 19 PHP
PHP使用GD库输出汉字的方法【测试可用】
Nov 10 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
Dec 21 PHP
PHP获取链表中倒数第K个节点的方法
Jan 18 PHP
TP框架实现上传一张图片和批量上传图片的方法分析
Apr 23 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中经典方法实现判断多维数组是否为空
2011/10/23 PHP
PHP中返回引用类型的方法
2015/04/03 PHP
php实现粘贴截图并完成上传功能
2015/05/17 PHP
php仿微信红包分配算法的实现方法
2016/05/13 PHP
laravel 解决crontab不执行的问题
2019/10/22 PHP
用正则表达式 动态创建/增加css style script 兼容IE firefox
2009/03/10 Javascript
在js文件中如何获取basePath处理js路径问题
2013/07/10 Javascript
jQuery制作仿腾讯web qq用户体验桌面
2013/08/20 Javascript
JavaScript中prototype为对象添加属性的误区介绍
2013/10/15 Javascript
一个简单的jquery的多选下拉框(自写)
2014/05/05 Javascript
javascript伸缩菜单栏实现代码分享
2015/11/12 Javascript
BootStrap3学习笔记(一)之网格系统
2016/05/20 Javascript
jQuery中fadein与fadeout方法用法示例
2016/09/16 Javascript
js输入框使用正则表达式校验输入内容的实例
2017/02/12 Javascript
原生JS实现图片网格式渐显、渐隐效果
2017/06/05 Javascript
Angular.js组件之input mask对input输入进行格式化详解
2017/07/10 Javascript
vue父组件向子组件(props)传递数据的方法
2018/01/02 Javascript
js中split()方法得到的数组长度问题
2018/07/19 Javascript
angularjs实现对表单输入改变的监控(ng-change和watch两种方式)
2018/08/29 Javascript
微信小程序页面传多个参数跳转页面的实现方法
2019/05/17 Javascript
python单链表实现代码实例
2013/11/21 Python
Python中利用函数装饰器实现备忘功能
2015/03/30 Python
Python实现按学生年龄排序的实际问题详解
2017/08/29 Python
用Pygal绘制直方图代码示例
2017/12/07 Python
Python和Java进行DES加密和解密的实例
2018/01/09 Python
解决pycharm回车之后不能换行或不能缩进的问题
2019/01/16 Python
python3.4爬虫demo
2019/01/22 Python
Python while true实现爬虫定时任务
2020/06/08 Python
python怎么自定义捕获错误
2020/06/29 Python
HTML5的hidden属性兼容老浏览器的方法
2014/04/23 HTML / CSS
亿企通软件测试面试题
2012/04/10 面试题
助人为乐表扬信范文
2014/01/14 职场文书
银行员工犯错检讨书
2014/09/16 职场文书
2015年人事专员工作总结
2015/04/29 职场文书
HR必备:销售经理聘用合同范本
2019/08/21 职场文书
一文搞懂Python Sklearn库使用
2021/08/23 Python