在浏览网页时,通过开发者工具可以查看一些 HTTP 传输时的信息,比如说响应头部的信息。
一些网站的 Response Headersb 部分会有 Server 和 X-Powered-By 数据项的值,通过这些值我们可以得到部分信息。比如说使用的 Nginx 1.17.3 版本,以及使用了 PHP 7.3.10 语言。暴露这些信息可能会对网站的安全性有影响,所以很多的网站都会隐藏这些信息。
接下来介绍一下如何隐藏或修改这些信息,很简单的几步就可以实现了!
关闭 X-Powered-By:
在 php.ini 中找到 expose_php 选项,将值修改为 Off 即可隐藏。
隐藏 Nginx 版本号:
在 Nginx 配置文件中加入即可
修改完后重启 Nginx 和 PHP-FPM
X-Powered-By 数据项未展示,Server 数据项的值为 nginx。
如果想将 server 的值进行自定义,需要在编译的时候进行配置,这里就不介绍了。
清除 thinkphp跟php的 X-Powered-By
找到文件,
ThinkPHP/Lib/Think/Core/View.class.php。
搜索到一下代码屏蔽即可。
header(‘X-Powered-By:ThinkPHP’);
PHP清除X-Powered-By: PHP/5.2.4
设置php.ini ,expose_php = Off。
由php生成的html代码,默认会在 http协议的头部给出,php的版本号信息。处于安全的目的,需要把php的版本号给隐藏掉。删除php版本号,仅仅需要修改一个配置选择就可以。expose_php = On , expose 顾名思义就是暴露的意思,默认是开启的,关闭即可。
默认的情况,会在http协议的头部增加 X-Powered-By:PHP/x.x.x
php默认输出的版本号
php配置文件中,关于是否暴露版本号的描述。
; Decides whether PHP may expose the fact that it is installed on the server
; (e.g. by adding its signature to the Web server header). It is no security
; threat in any way, but it makes it possible to determine whether you use PHP
; on your server or not.
; http://php.net/expose-php
expose_php = On
翻译过来意思是说, 决定是否暴露你的服务器上是否安装了php, (例如会在web服务的头部增加一个签名),增加这个签名是没有任何安全问题的,同时可以告诉你,你的php是否正常运行。
修改的方法 修改php.ini 中的
;expose_php = On
expose_php = Off
隐藏php版本号的其他方法
在php中php-fpm的pool配置文件中设置
php_admin_flag[expose_php] = off
这种方法灵活性更强一些, 如果php同时有多pool 可以进行更细致的设置,就是部分poll设置,部分不设置。