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 缓存实现代码及详细注释
May 16 PHP
PHP 面向对象详解
Sep 13 PHP
php时间戳转换的示例
Mar 31 PHP
php中session过期时间设置及session回收机制介绍
May 05 PHP
PHP中多维数组的foreach遍历示例
Jun 13 PHP
php中的curl_multi系列函数使用例子
Jul 29 PHP
使用php转义输出HTML到JavaScript
Mar 27 PHP
php实现比较两个文件夹异同的方法
Jun 18 PHP
PHP laravel中的多对多关系实例详解
Jun 07 PHP
PHP实现的简单组词算法示例
Apr 10 PHP
PHP依赖注入原理与用法分析
Aug 21 PHP
通过代码实例解析PHP session工作原理
Dec 11 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 项目的方法
2007/01/02 PHP
将一维或多维的数组连接成一个字符串的php代码
2010/08/08 PHP
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
2011/11/10 PHP
PHP set_error_handler()函数使用详解(示例)
2013/11/12 PHP
Jquery 的扩展方法总结
2011/10/01 Javascript
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
2013/06/06 Javascript
js实现图片旋转的三种方法
2014/04/10 Javascript
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
2015/08/04 Javascript
jQuery给指定的table动态添加删除行的操作方法
2016/10/12 Javascript
微信小程序 解决请求服务器手机预览请求不到数据的方法
2017/01/04 Javascript
JavaScript获取select中text值的方法
2017/02/13 Javascript
JS实现加载和读取XML文件的方法详解
2017/04/24 Javascript
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
2018/04/19 Javascript
小程序怎样让wx.navigateBack更好用的方法实现
2019/11/01 Javascript
vue项目中监听手机物理返回键的实现
2020/01/18 Javascript
python操作sqlite的CRUD实例分析
2015/05/08 Python
widows下安装pycurl并利用pycurl请求https地址的方法
2018/10/15 Python
Python基础教程之异常详解
2019/01/10 Python
Python分支语句与循环语句应用实例分析
2019/05/07 Python
python实现海螺图片的方法示例
2019/05/12 Python
Python通用函数实现数组计算的方法
2019/06/13 Python
详解python爬取弹幕与数据分析
2020/11/14 Python
纯CSS3实现的8种Loading动画效果
2014/07/05 HTML / CSS
H5混合开发app如何升级的方法
2018/01/10 HTML / CSS
html2canvas把div保存图片高清图的方法示例
2018/03/05 HTML / CSS
英国派对礼服和连衣裙购物网站:TFNC London
2018/07/07 全球购物
公交公司毕业生求职信
2014/02/15 职场文书
护理人员的自我评价分享
2014/03/15 职场文书
教师职业道德事迹材料
2014/08/18 职场文书
同志主要表现材料
2014/08/21 职场文书
践行党的群众路线心得体会
2014/11/05 职场文书
六年级情感作文之500字
2019/10/23 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
windows下快速安装nginx并配置开机自启动的方法
2021/05/11 Servers
Mysql中where与on的区别及何时使用详析
2021/08/04 MySQL
MySql数据库触发器使用教程
2022/06/01 MySQL