Недавно я узнал о так называемых «URL-адресах пасхальных яиц» в PHP:
Это четыре строки QUERY, которые вы можете добавить в конец веб-страницы PHP для просмотра (несколько) скрытого изображения или веб-страницы:
?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
Это самое интересное и отображает изображение «пасхального яйца» либо кролика в доме (кролик Стерлинга Хьюза, по имени Кармелла), коричневая собака в траве, черная собака шотландского терьера, нарисованный, цветной логотип php, цветной карандаш или картофель-фри, торчащий из его рта, как морж, или логотип слона PHP.
Другие включают:
?=PHPE9568F34-D428-11d2-A769-00AA001ACF42
(Логотип PHP) ?=PHPE9568F35-D428-11d2-A769-00AA001ACF42
(логотип Zend) ?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000
(PHP Credits) Я был потрясен, обнаружив, что это работает на многих веб-сайтах, в том числе и на моем. Я думаю, что это идиотка, и вы хотите отключить его, но из того, что я слышу, единственный способ сделать это – в php.ini с expose_php = Off
, и он не может быть установлен во время выполнения с помощью ini_set()
.
У меня нет прямого доступа к php.ini на реальном сервере. Я, однако, понял, как отключить заголовок X-Powered-By
, используя Header unset X-Powered-By
в .htaccess
или header('X-Powered-By: ')
в PHP-коде.
Есть ли другой способ отключить эти «пасхальные яйца», или мне нужно изменить этот параметр в главном php.ini
(и это действительно правильный / единственный способ отключить эти URL-адреса)?
Быстрая глобальная переработка HTACCESS может повторно выставлять точную строку прямо из каждого URL, тем самым избавляясь от единственной забавной части PHP, не касаясь ini-файла и не нуждаясь в функции в начале каждого файла.
Не тестировали это еще, но это должно работать:
RewriteEngine On RewriteCond %{QUERY_STRING} \PHPE9568F36-D428-11d2-A769-00AA001ACF42\ [NC] RewriteRule .* - [F]
Конечно, просто скопируйте последние 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]
в php.ini
; Decides whether PHP may expose the fact that it is installed on the server ; (eg 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
Это эффективно удалит пасхальные яйца
Обновление: это удалено в PHP 5.5, обратите внимание, как эти ссылки больше не работают на php.net