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 读取文件内容代码(txt,js等)
Dec 06 PHP
php解析html类库simple_html_dom(详细介绍)
Jul 05 PHP
PHP cdata 处理(详细介绍)
Jul 05 PHP
php设置允许大文件上传示例代码
Mar 10 PHP
php获取随机数组列表的方法
Nov 13 PHP
PHP打印输出函数汇总
Aug 28 PHP
yii2.0整合阿里云oss上传单个文件的示例
Sep 19 PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 PHP
PHP实现负载均衡的加权轮询方法分析
Aug 22 PHP
PHP函数积累总结
Mar 19 PHP
PHP中16个高危函数整理
Sep 19 PHP
TP5框架页面跳转样式操作示例
Apr 05 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
评分9.0以上的动画电影,剧情除了经典还很燃
2020/03/04 日漫
用PHP实现验证码功能
2006/10/09 PHP
PHP中for循环语句的几种变型
2006/11/26 PHP
解析php中获取url与物理路径的总结
2013/06/21 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
2016/03/21 PHP
php+mysql+jquery实现日历签到功能
2017/02/27 PHP
Laravel5.3+框架定义API路径取消CSRF保护方法详解
2020/04/06 PHP
prototype 学习笔记整理
2009/07/17 Javascript
对xmlHttp对象方法和属性的理解
2011/01/17 Javascript
JavaScript使用ActiveXObject访问Access和SQL Server数据库
2015/04/02 Javascript
动态创建按钮的JavaScript代码
2016/01/29 Javascript
深入浅析JavaScript函数前面的加号和叹号
2016/07/09 Javascript
Bootstrap零基础入门教程(三)
2016/07/18 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
解决nodejs中使用http请求返回值为html时乱码的问题
2017/02/18 NodeJs
AngularJS Toaster使用详解
2017/02/24 Javascript
HTML5+jQuery实现搜索智能匹配功能
2017/03/24 jQuery
requirejs + vue 项目搭建详解
2017/06/16 Javascript
原生js二级联动效果
2017/06/20 Javascript
VueJs单页应用实现微信网页授权及微信分享功能示例
2017/07/26 Javascript
ReactNative之FlatList的具体使用方法
2017/11/29 Javascript
JS与CSS3实现图片响应鼠标移动放大效果示例
2018/05/04 Javascript
Vue如何实现响应式系统
2018/07/11 Javascript
微信小程序+腾讯地图开发实现路径规划绘制
2019/05/22 Javascript
[01:31:22]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第二场 1月10日
2021/03/11 DOTA
python实现爬虫下载美女图片
2015/07/14 Python
python实现滑雪者小游戏
2020/02/22 Python
TensorFlow打印输出tensor的值
2020/04/19 Python
HTML5 Canvas中使用路径描画二阶、三阶贝塞尔曲线
2015/01/01 HTML / CSS
日本面向世界,国际级的免税在线购物商城:DOKODEMO
2017/02/01 全球购物
Linux上比较文件的命令都有哪些
2013/09/28 面试题
计算机专业应届毕业生自荐信
2013/09/26 职场文书
学校感恩节活动策划方案
2014/10/06 职场文书
2014年乡镇人大工作总结
2014/11/25 职场文书
班主任经验交流材料
2014/12/16 职场文书
2015中秋祝酒词
2015/08/12 职场文书