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 REMOTE_ADDR之获取访客IP的代码
Apr 22 PHP
一个PHP缓存类代码(附详细说明)
Jun 09 PHP
PHP实例分享判断客户端是否使用代理服务器及其匿名级别
Jun 04 PHP
php基于GD库画五星红旗的方法
Feb 24 PHP
php判断用户是否关注微信公众号
Jul 22 PHP
php原生导出excel文件的两种方法(推荐)
Nov 19 PHP
PHP封装的多文件上传类实例与用法详解
Feb 07 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
Feb 10 PHP
PHP十六进制颜色随机生成器功能示例
Jul 24 PHP
PHP实现登录注册之BootStrap表单功能
Sep 03 PHP
php 策略模式原理与应用深入理解
Sep 25 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
Jan 02 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
水质对咖图啡风味的影响具体有哪些
2021/03/03 冲泡冲煮
PHP 开源AJAX框架14种
2009/08/24 PHP
PHP封装的分页类与简单用法示例
2019/02/25 PHP
js显示时间 js显示最后修改时间
2013/01/02 Javascript
jquery 触发a链接点击事件解决方案
2013/05/02 Javascript
javasctipt如何显示几分钟前、几天前等
2014/04/30 Javascript
jQuery简单tab切换效果实现方法
2015/04/08 Javascript
Javascript中的数据类型之旅
2015/10/18 Javascript
javascript实现tab响应式切换特效
2016/01/29 Javascript
[原创]JQuery 在表单提交之前修改 提交的值
2016/04/14 Javascript
Javascript将字符串日期格式化为yyyy-mm-dd的方法
2016/10/27 Javascript
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
详解Vue-Cli 异步加载数据的一些注意点
2017/08/12 Javascript
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
详解Vue-cli webpack移动端自动化构建rem问题
2018/04/07 Javascript
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
使用PDB简单调试Python程序简明指南
2015/04/25 Python
Python入门学习之字符串与比较运算符
2015/10/12 Python
Python3标准库之functools管理函数的工具详解
2020/02/27 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
2020/06/11 Python
Redbubble法国:由独立艺术家设计的独特产品
2019/01/08 全球购物
毕业寄语大全
2014/04/09 职场文书
学校师德承诺书
2014/05/23 职场文书
物流管理专业推荐信
2014/09/06 职场文书
忠诚奉献演讲稿
2014/09/12 职场文书
2014年最新党员对照检查材料汇总
2014/09/15 职场文书
领导干部整治奢华浪费之风思想汇报
2014/10/07 职场文书
体育教师个人工作总结
2015/02/09 职场文书
母亲节寄语大全
2015/02/27 职场文书
财务出纳岗位职责
2015/03/31 职场文书
酒桌上的开场白
2015/06/01 职场文书
Python爬虫之爬取最新更新的小说网站
2021/05/06 Python
浅谈@Value和@Bean的执行顺序问题
2021/06/16 Java/Android
《宝可梦》动画制作25周年到来 官方发布特别纪念视频
2022/04/01 日漫
分享Python异步爬取知乎热榜
2022/04/12 Python
Python可视化神器pyecharts绘制地理图表
2022/07/07 Python