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如何得到当前页和上一页的地址?
Nov 27 PHP
php getsiteurl()函数
Sep 05 PHP
PHP中文件上传的一个问题
Sep 04 PHP
php图片上传存储源码并且可以预览
Aug 26 PHP
php遍历目录与文件夹的多种方法详解
Nov 14 PHP
php使用curl检测网页是否被百度收录的示例分享
Jan 31 PHP
php中curl和file_get_content的区别
May 10 PHP
php版微信公众平台接口开发之智能回复开发教程
Sep 22 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
Nov 17 PHP
利用php获得flv视频长度的实例代码
Oct 26 PHP
laravel 之 Eloquent 模型修改器和序列化示例
Oct 17 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
Dec 29 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 smarty 二级分类代码和模版循环例子
2011/06/01 PHP
PHP的Yii框架中View视图的使用进阶
2016/03/29 PHP
PHP怎样用正则抓取页面中的网址
2016/08/09 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
xss文件页面内容读取(解决)
2010/11/28 Javascript
基于jquery编写的横向自适应幻灯片切换特效的实例代码
2013/08/06 Javascript
Jquery操作下拉框(DropDownList)实现取值赋值
2013/08/13 Javascript
javascript bom是什么及bom和dom的区别
2015/11/26 Javascript
常用的Javascript设计模式小结
2015/12/09 Javascript
基于jquery实现动态竖向柱状条特效
2016/02/12 Javascript
基于Javascript实现倒计时功能
2016/02/22 Javascript
详解js数组的完全随机排列算法
2016/12/16 Javascript
微信小程序 开发之顶部导航栏实例代码
2017/02/23 Javascript
js实现图片上传预览原理分析
2017/07/13 Javascript
Vue.js实现价格计算器功能
2020/03/30 Javascript
react-redux中connect的装饰器用法@connect详解
2018/01/13 Javascript
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
2018/04/26 jQuery
VUE 实现滚动监听 导航栏置顶的方法
2018/09/11 Javascript
JavaScript实现选项卡效果的分析及步骤
2019/04/16 Javascript
vue使用localStorage保存登录信息 适用于移动端、PC端
2019/05/27 Javascript
mock.js模拟前后台交互
2019/07/25 Javascript
Javascript摸拟自由落体与上抛运动原理与实现方法详解
2020/04/08 Javascript
Python数据可视化编程通过Matplotlib创建散点图代码示例
2017/12/09 Python
Numpy之random函数使用学习
2019/01/29 Python
使用Python 统计高频字数的方法
2019/01/31 Python
谈一谈基于python的面向对象编程基础
2019/05/21 Python
如何将PySpark导入Python的放实现(2种)
2020/04/26 Python
HTML5通用接口详解
2016/06/12 HTML / CSS
意大利奢侈品购物网站:Giglio
2018/01/05 全球购物
印度在线购买电子产品网站:Croma
2020/01/02 全球购物
新员工欢迎词
2014/01/12 职场文书
骨干教师培训制度
2014/01/13 职场文书
企业年会主持词
2014/03/27 职场文书
出纳担保书范文
2014/04/02 职场文书
学雷锋志愿者活动总结
2014/06/27 职场文书
销区经理年终述职报告模板
2019/11/28 职场文书