如果我们不想暴露出我的服务器上有安装PHP服务,怎么办呢?请继续往下看:一般来说,大多数默认设置安装的web服务器都存在一些信息泄露,例如:Nginx、Apache、PHP......等等,而PHP服务及版本号就是其中之一。
虽然说:一般而言,通过隐藏的手段提高安全性被认为是作用不大的做法。但某些情况下,尽可能的多增加一份安全性都是值得的。
但是:一些简单的方法可以帮助隐藏 PHP,这样做可以提高攻击者发现系统弱点的难度。
一、PHP隐藏版本号
PHP服务及版本隐藏方法也非常的简单,只需要在 php.ini 文件里设置 expose_php = off ,就可以减少他们能获得的有用信息。
1、打开php.ini配置文件,路径请根据自己的来。
vim /usr/local/php/lib/php.ini
2 、将“expose_php = On”修改成 “expose_php = Off"。
expose_php = Off
注意:通常expose_php默认是开着的。
3、保存并重启PHP即可!
在此之前,web服务器头看上去就像这样:
[root@fujieace~]# curl -I 127.0.0.1
HTTP/1.1 200 OK
Server: nginx
Content-Type: text/html; charset=UTF-8
Vary: Accept-Encoding
X-Powered-By: PHP/5.6.1
Date: Wed, 11 Feb 2015 14:10:43 GMT
X-Page-Speed: 1.9.32.2-4321
Cache-Control: max-age=0, no-cache
更改并重启 Web 服务后,php就不会在web服务头中显示版本了:
[root@fujieace~]# curl -I 127.0.0.1
HTTP/1.1 200 OK
Server: nginx
Content-Type: text/html; charset=UTF-8
Vary: Accept-Encoding
Date: Fri Oct 19 12:54:00 CST 2018
X-Page-Speed: 1.9.32.2-4321
Cache-Control: max-age=0, no-cache
二、隐藏PHP服务方法
PHP服务可以说是隐藏不了的,因为你网站总有一些文件是以PHP结尾的扩展名存在的,全站扫描的话,肯定能扫描到。
所谓:隐藏PHP服务一般是指“隐藏PHP后缀名”这种策略来实现的。
也就是说让 web 服务器用 PHP 解析不同扩展名。以Apache+PHP举例:无论是通过 .htaccess 文件还是 Apache 的配置文件,都可以设置能误导攻击者的文件扩展名。
我们以PHP+Apache为例,隐藏PHP服务可以有三种方法:
注意:要让以下几种方法生效,必须把 PHP 文件的扩展名改为以下的扩展名。这样就通过隐藏来提高了安全性,虽然防御能力很低而且有些缺点。
1、把 PHP 隐藏为另一种语言
# 使PHP看上去像其它的编程语言
AddType application/x-httpd-php .asp .py .pl
2、干脆彻底隐藏它,使用未知的扩展名作为 PHP 的扩展名
# 使 PHP 看上去像未知的文件类型
AddType application/x-httpd-php .bop .foo .133t
3、直接把它隐藏为 HTML 页面,用 HTML 做 PHP 的文件后缀。这样所有的 HTML 文件都会通过 PHP 引擎,会为服务器增加一些负担
# 使 PHP 代码看上去像 HTML 页面
AddType application/x-httpd-php .htm .html
我个人觉得直接使用 HTML 做 PHP 的文件后缀是一个不错的选择,这样打开任何的PHP后缀文件都会 显示成html,攻击者还以为你的整站都是纯静态文件呢!虽然说服务器会有一些压力。
具体怎么做,大家请根据自己的项目情况来吧!
2019年03月28日 17:51:22 沙发
这样就不会造成了“php 版本泄露”了,方法很不错,拿走了!
2018年10月19日 13:57:04 板凳
以下是我摘抄的新闻:
因此,隐藏PHP版本号及PHP服务真的可以解决一些麻烦!可以说是非常的好用!