如何禁用PHP的"复活节彩蛋"网址?

Wes*_*rch 65 php

我最近在PHP中发现了所谓的"复活节彩蛋URL":

这些是您可以添加到PHP网页末尾的四个QUERY字符串,用于查看(有些)隐藏的图像或网页:

  1. ?=PHPE9568F36-D428-11d2-A769-00AA001ACF42

这是最有趣的,并展示了一只兔子在房子里的"复活节彩蛋"形象(Sterling Hughes的兔子,名为Carmella),草地上的棕色狗,黑色的苏格兰梗狗,草率的儿童手 - 绘制的,蜡笔色的php徽标,一个带面包棒的人(看起来像铅笔或炸薯条)像海象一样从嘴里伸出,或者是一个PHP大象标志.

在此输入图像描述

其他包括:

  • ?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 (PHP徽标)
  • ?=PHPE9568F35-D428-11d2-A769-00AA001ACF42 (Zend标志)
  • ?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000 (PHP学分)

我很震惊地发现这确实适用于很多网站,包括我自己的网站.我认为这是愚蠢的,并要禁用它,但是从我听到这样做是在php.ini中的唯一方法expose_php = Off,它不能在运行时设置ini_set().

我没有直接访问实时服务器上的php.ini.但是,我已经想出了如何X-Powered-By通过使用Header unset X-Powered-Byin .htaccessheader('X-Powered-By: ')PHP代码来取消设置标头.

有没有其他方法我可以禁用这些"复活节彩蛋",或者我必须在主要中更改此设置php.ini(这是否确实是禁用这些URL的正确/唯一方式)?

Rya*_*yan 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
Run Code Online (Sandbox Code Playgroud)

这将有效地去除复活节彩蛋

  • 虽然它没有回答OP的问题,但对于能够访问php.ini的人来说,这仍然是有用的. (43认同)
  • OP说:"我没有直接访问实时服务器上的php.ini." (6认同)
  • 如果您无权访问php.ini,则应将此报告给系统管理员,以便在生产环境中关闭此设置.所以我会推荐这个答案. (3认同)

Dan*_*dux 32

一个快速的HTACCESS全局重写可以正确地从每个URL重新出现确切的字符串,从而摆脱PHP唯一有趣的部分,而不触及ini文件,也不需要在每个文件的开头都有一个函数.

尚未测试过,但这应该有效:

RewriteEngine On
RewriteCond %{QUERY_STRING} \PHPE9568F36-D428-11d2-A769-00AA001ACF42\ [NC]
RewriteRule .* - [F]
Run Code Online (Sandbox Code Playgroud)

当然,只需为每个其他可能的查询复制最后2行,或者编写更通用的正则表达式.我对正则表达式不满意.:)

这个版本涵盖了所有复活节彩蛋的乐趣,在这里找到:

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]
Run Code Online (Sandbox Code Playgroud)

  • 是否有第六个删除整个应用程序? (6认同)
  • @AndreaFaulds:这是接受的答案,因为提问者已经解释过(参考)人们只能在php.ini中设置`expose_php`并且op无法访问该文件,因此他无法使用该解决方案.但是,从PHP 5.5开始,最终删除了复活节彩蛋(以及每个php实例的内存为21KB内存的代码):http://php.net/manual/en/migration55.incompatible.php#migration55.incompatible.guid**PS**我喜欢有人发布链接到神秘的第5个链接..我喜欢第五个元素哈哈. (2认同)

chi*_*NUT 10

更新:这在PHP 5.5中被删除,请注意这些链接如何在php.net上不再起作用

http://phpsadness.com/sad/11