我最近在PHP中发现了所谓的"easter egg URLs":
这些是您可以添加到PHP网页末尾的四个QUERY字符串,用于查看(有些)隐藏的图像或网页:
?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
这是最有趣的,并显示“复活节彩蛋”图像 在房子里的一只兔子(斯特林休斯的兔子,名字 Carmella),一只棕色的狗在草地上,一只黑色的苏格兰梗狗,一只 草率的孩子手绘,蜡笔色的php标志,一个人 面包棒(看起来像铅笔或炸薯条)伸出他的 嘴巴像海象,或PHP大象标志。
其他包括:
?=PHPE9568F34-D428-11d2-A769-00AA001ACF42
(PHP徽标)?=PHPE9568F35-D428-11d2-A769-00AA001ACF42
(Zend logo)?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000
(PHP学分)我很震惊地发现这确实适用于很多网站,包括我自己的网站。我认为这是愚蠢的并想要禁用它,但从我听到的唯一的方法是使用expose_php = Off
的php.ini,ini_set()
的{{3}}。
我没有直接访问实时服务器上的php.ini。但是,我已经找到了如何使用can't be set at runtime取消设置X-Powered-By
标头的方法在.htaccess
或PHP代码中的header('X-Powered-By: ')
。
我有没有其他方法可以禁用这些“复活节彩蛋”,或者我必须在主php.ini
中更改此设置(这是否确实是禁用这些网址的正确/唯一方法)?
答案 0 :(得分:58)
在php.ini中
; 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 = Off
这将有效地去除复活节彩蛋
答案 1 :(得分:32)
一个快速的HTACCESS全局重写可以正确地从每个URL中取出正确的字符串,从而摆脱PHP唯一有趣的部分而不触及ini文件,也不需要在每个文件的开头都有函数。
尚未对此进行测试,但这应该有效:
RewriteEngine On
RewriteCond %{QUERY_STRING} \PHPE9568F36-D428-11d2-A769-00AA001ACF42\ [NC]
RewriteRule .* - [F]
当然,只需为每个其他可能的查询复制最后两行,或者编写更通用的正则表达式。我对正则表达式不满意。 :)
这个版本涵盖了所有复活节彩蛋的乐趣,并被发现here:
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]
答案 2 :(得分:9)
更新:这在PHP 5.5中被删除,请注意这些链接如何在php.net上不再起作用
答案 3 :(得分:0)
不确定您的情况,但这对我的网站有用。希望它也适用于您的网站。
RewriteEngine On
RewriteCond %{QUERY_STRING} \PHPE9568F36-D428-11d2-A769-00AA001ACF42\ [NC]
RewriteRule .* - [F]
当然,只需为每个其他可能的查询复制最后两行,或编写一个更通用的正则表达式。我对正则表达式不好。 :)