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基础知识:类与对象(4) 范围解析操作符(::)
Dec 13 PHP
用php获取远程图片并把它保存到本地的代码
Apr 07 PHP
phpmyadmin 访问被拒绝的真实原因
Jun 15 PHP
PHP CKEditor 上传图片实现代码
Nov 06 PHP
php调用dll的实例操作动画与代码分享
Aug 14 PHP
PHP对接微信公众平台消息接口开发流程教程
Mar 25 PHP
微信公众平台天气预报功能开发
Jul 06 PHP
thinkphp中html:list标签传递多个参数实例
Oct 30 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
Aug 16 PHP
WordPress用户登录框密码的隐藏与部分显示技巧
Dec 31 PHP
PHPExcel简单读取excel文件示例
May 26 PHP
Laravel框架模型的创建及模型对数据操作示例
May 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
无数据库的详细域名查询程序PHP版(5)
2006/10/09 PHP
用PHP+MySql编写聊天室
2006/10/09 PHP
MySQL数据源表结构图示
2008/06/05 PHP
PHP中ob_start函数的使用说明
2013/11/11 PHP
有关于PHP中常见数据类型的汇总分享
2014/01/06 PHP
PHP将两个关联数组合并函数提高函数效率
2014/03/18 PHP
PHP实现AES256加密算法实例
2014/09/22 PHP
php写app用的框架整理
2019/09/29 PHP
用JQuery模仿淘宝的图片放大镜显示效果
2011/09/15 Javascript
杨氏矩阵查找的JS代码
2013/03/21 Javascript
window.print打印指定div实例代码
2013/12/13 Javascript
不同编码的页面表单数据乱码问题解决方法
2015/02/15 Javascript
JavaScript显示表单内元素数量的方法
2015/04/02 Javascript
javascript实现checkbox全选的代码
2015/04/30 Javascript
jQuery实现的超酷苹果风格图标滑出菜单效果代码
2015/09/16 Javascript
JavaScript代码实现图片循环滚动效果
2020/03/19 Javascript
javascript验证香港身份证的格式或真实性
2017/02/07 Javascript
Vue 2.0 服务端渲染入门介绍
2017/03/29 Javascript
vue项目中引入noVNC远程桌面的方法
2018/03/05 Javascript
Vue组件Draggable实现拖拽功能
2018/12/01 Javascript
vue实现可视化可拖放的自定义表单的示例代码
2019/03/20 Javascript
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
2018/01/16 Python
python监控键盘输入实例代码
2018/02/09 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
2019/01/04 Python
查看端口并杀进程python脚本代码
2019/12/17 Python
pytorch方法测试详解——归一化(BatchNorm2d)
2020/01/15 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
2020/03/23 Python
Python动态强类型解释型语言原理解析
2020/03/25 Python
Python unittest单元测试openpyxl实现过程解析
2020/05/27 Python
python统计mysql数据量变化并调用接口告警的示例代码
2020/09/21 Python
英国顶级家庭折扣店:The Works
2017/09/06 全球购物
IBatis持久层技术
2016/07/18 面试题
第二课堂活动总结
2014/05/07 职场文书
2014法院干警廉洁警示教育思想汇报
2014/09/13 职场文书
《灰雀》教学反思
2016/02/19 职场文书
mysql数据插入覆盖和时间戳的问题及解决
2022/03/25 MySQL