关闭PHP彩蛋的显示

PHP彩蛋我也是第一次听说,Easter Eggs(复活节彩蛋)外行人估计不了解这是神木玩意,彩蛋的网络解释是:用于电脑、电子游戏、电脑游戏、影碟或其他互动多媒体之中的隐藏功能或信息。貌似老一辈的程序员们都知道,因为PHP是由黑客语言发展而来,所以各方面都透露着放荡不羁的极客精神!还好不会让人崩溃。

PHP彩蛋是如何运作的

只要运行PHP的服务器上,访问任何网页都可以在域名后添加以下字符串来查看信息:

?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000 (PHP信息列表)
?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 (PHP的LOGO)
?=PHPE9568F35-D428-11d2-A769-00AA001ACF42 (Zend LOGO)
?=PHPE9568F36-D428-11d2-A769-00AA001ACF42 (PHP LOGO 蓝色大象)

例如:http://www.wpdaxue.com/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000

?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000 (PHP信息列表)

php彩蛋1

?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 (PHP的LOGO)

php彩蛋2

?=PHPE9568F35-D428-11d2-A769-00AA001ACF42 (Zend LOGO)

php彩蛋3

?=PHPE9568F36-D428-11d2-A769-00AA001ACF42 (PHP LOGO 蓝色大象)

php彩蛋4

如何看待PHP彩蛋

如果你在自己的博客上也发现了这个问题,请不要惊慌,也莫要想着马上去解决他。其实这不算是漏洞。只是开源团队开的一个玩笑,全世界的人都认可了的玩笑。没必要上纲上线,将它列为PHP的漏洞。

解决办法

一般情况下如果你的服务器支持编辑php.ini文件,我们可以把php.ini里的expose_php设为Off就可以屏蔽了。

;;;;;;;;;;;;;;;;;
; Miscellaneous ;
;;;;;;;;;;;;;;;;;
 
; 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.ini文件,也可以通过设置.htaccess来进行屏蔽。虽然灵活性较差,不过也分享出来供大家参考吧:

# 禁止特定logo
RewriteEngine On 
RewriteCond %{QUERY_STRING} \PHPE9568F36-D428-11d2-A769-00AA001ACF42\ [NC] 
RewriteRule .* - [F] 
 
# 或者正则禁止所有已知logo
# See https://akeeba.assembla.com/code/master-htaccess/git/nodes/htaccess.txt
RewriteEngine On 
RewriteCond %{QUERY_STRING} \=PHP[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12} [NC] 
RewriteRule .* - [F]