前几天,听一个前辈说到,关于PHP中彩蛋的概念,顿时不知所云。作为漫威终极粉的我,彩蛋的概念,深深的植入已经在我脑子里。
但是PHP彩蛋我也是第一次听说,也问了几个近几年刚做PHP的朋友,都没有听过,估计只有老一辈的程序员们都知道。
彩蛋指电影中不仔细寻觅,会被忽略的有趣细节;还有就是影片剧情结束后,在演职员表滚屏时或之后出现的电影片段(通常是一些幽默场景或是跟续集有关的情节线索)。
在PHP中彩蛋,我们把它认为是:惊喜。
就是只要在运行PHP的服务器上,在域名后面输入下面的字符参数,就能返回一些意想不到的信息(有些服务器屏蔽)。
PHP中4个彩蛋
- ?=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 蓝色大象)
配置好PHP解析服务器之后,写一个PHP程序如下:
1 | <? |
访问的时候index.php,然后拼接上面的参数,如下
- www.icocos.cn/index.php?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000
- www.icocos.cn/index.php?=PHPE9568F34-D428-11d2-A769-00AA001ACF42
- www.icocos.cn/index.php?=PHPE9568F35-D428-11d2-A769-00AA001ACF42
- www.icocos.cn/index.php?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
就可以看到,如下参数的信息了。
如果你在博客或者网站上也发现了这个问题,不用马上去解决他。这不算是漏洞。只是开源团队开的一个玩笑,全世界的人都认可了的玩笑,所以他并不是PHP的漏洞。
当然,也有部分奇葩的人,会借助这个彩蛋去做一些事情,比如:
有些网站采用动态脚本生成纯静态HTML页或者是采用URL重写实现伪静态页面,如果网站使用的是PHP开发的话,可以尝试使用彩蛋的探测法,然后根据特有的技术,去做一些破坏或者攻击!
解决办法
可以通过apache或者nginx的配置文件去屏蔽。
- 默认情况下彩蛋的功能在php.ini中是开启的
1 | ;;;;;;;;;;;;;;;;; |
只要将expose_php设置为Off即可!
expose_php = Off
- 也可以通过设置.htaccess来进行屏蔽。
1 | RewriteCond %{QUERY_STRING} \=PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC] RewriteRule .* - [F] |