Пожалуй, всем известно, что сегодня, 5 апреля 2010 года, и католики и православные отмечают Пасху. Пользуясь случаем, я решил написать статью о пасхальных яйцах, только не таких, которые красят, а о тех, происхождение которых связано с тематикой Хабра. Речь пойдёт о пасхальных яйцах языка PHP.
Сразу хочется подчеркнуть, что пасхальные яйца PHP, о которых пойдёт речь, абсолютно безобидны. Их существование никак не может отрицательно сказаться на работе сайта. Как я уже сказал, существует несколько особых строчек (назовём их сигнатурами), добавление которых к запросу ВНЕЗАПНО меняет ответ сервера. Синтаксически сигнатура должна являться значением безымянной и единственной GET-переменной (например, mypage.php?=×××).
Талисман PHP «elePHPant» (некоторые версии 5.2.?).
Подробнее о соответствии версий PHP и этих картинок можно посмотреть в одной англоязычной статье на эту тему на сайте 0php.com. Жалко, что не получилось абсолютно точно установить зависимость, потому что на официальном сайте PHP CVS-log файла, где хранятся изображения, не работает. Прошу прощения, если я где-то ошибся.
Все три изображения (логотип Zend, логотип PHP, забавная картинка) имеют формат GIF и хранятся в виде массивов байт в файле main/logos.h.
Можно ли как-то это отключить?
Если Вы администрируете написанный на PHP сайт, Вы, скорее всего, уже попробовали провернуть этот трюк со своим проектом. Если пасхальное яйцо «работает», то Вы, вероятно, уже решили от него избавиться. Сделать это чрезвычайно просто.
Достаточно открыть у себя на сервере файл php.ini, найти параметр expose_php и поменять его значение на «off»:
expose_php = off
После перезагрузки веб-сервера картинки и страница с информацией о разработчиках перестанут появляться — необычные запросы начнут обрабатываться в обычном режиме. Также сервер прекратит добавлять строку «X-Powered-By: PHP/×.×.× ...» в HTTP-заголовки ответов, упоминание о PHP уберётся из строки «Server: ...» (если оно сейчас там есть).
Избавившись от этого «ужасного хака», Вам удастся всего лишь скрыть факт того, что Ваш сайт использует PHP. Конечно, это относится только к проектам с ЧПУ (да и то далеко не всем). Если же ссылки на Вашем сайте имеют вид «my_cosy_guestbook.php?do=delete_all», Вас это, естественно, не спасёт. Перед поиском и изменением файла php.ini обязательно не забудьте для себя ответить на вопрос: «А оно мне надо?».
Применение в хозяйстве
Несмотря на кажущуюся бесполезность, у описанного пасхального яйца есть практическое применение. Если на своём сайте вывести информацию о системе с помощью функции phpinfo(), Вы увидите логотипы PHP и Zend, а также ссылку «PHP Credits». По какому URI будут запрошены картинки, и куда будет вести ссылка на список разработчиков, догадаться теперь совсем несложно. Ресурсы получаются доступными, даже если сайт тестируется на локальной машине, не имеющей доступ в Интернет. Это работает только при включенной опции expose_php (иначе картинки и ссылка не отображаются). Вот рабочий пример: www.it.tsu.ge/info.php (сайт не мой, я просто разместил объяву ссылку). Ещё пример: hosting.iptcom.net/phpinfo.php (оказывается, картинка с логотипом Zend была совсем другой в версии PHP 4.4.4). Пример сайта с выключенной опцией expose_php на сервере: help.secureserver.net/linux-phpinfo.html.
Яйцо-бонус
Изучая исходники PHP, я случайно наткнулся на источник ещё одного забавного секрета, несколько раз упомянутого в Интернете. Оказывается, что 1 апреля логотип, генерируемый функцией php_logo_guid(), заменяется забавной картинкой (как для случая с сигнатурой PHPE9568F36-D428-11d2-A769-00AA001ACF42). Получается, что в этот день логотип поменяется и на странице, полученной с помощью phpinfo().
В исходниках версии 5.2.13 за это «яйцо» отвечают строчки 1237-1238 файла ext/standard/info.c. Жаль, что увидеть в действии его можно только почти через год. Хотя, нетерпеливые товарищи в любой момент могут поменять системную дату. ;)
Яйцо-бонус № 2
К концу написания статьи выяснилось, что есть ещё одна сигнатура, которая работает в PHP 5. Для этого пасхального яйца нужно, чтобы было включено расширение Suhosin (оно используется для усиления безопасности PHP). Сигнатура такая: SUHO8567F54-D428-14d2-A769-00DA302A5F18. Результатом добавления её в запрос является картинка с тремя иероглифами, которые переводятся с корейского примерно как защитник или ангел-хранитель.
Хорошо, когда люди, разрабатывающие серьёзные вещи, имеют чувство юмора и позволяют себе безобидно пошутить. К тому же пасхальные яйца — неплохая вирусная реклама своего продукта (фактически, я сейчас бесплатно рекламирую PHP). Главное здесь для разработчиков — не переусердствовать.
P.S.: Я понимаю, что для некоторых хабровчан описанный факт покажется бородатым и неинтересным, но уверен, что кто-то слышит о пасхальных яйцах в PHP впервые. Лично я узнал обо всём этом совсем недавно, хотя первый мой php-файл был создан около 5 лет назад.
This is nicely expressed! .
Best Essay writing
essay writing service https://argumentativeresearch.com
buy an essay online - 15-12-20 10:12:43
Nicely put. Thanks!
Best Essay writing
buy aan essay online https://admissionessaywritingservice.com
urgent essay writing service - 15-12-20 05:12:02
That is a very good tip particularly to those new to the blogosphere.
Brief but very precise info… Thank you for sharing this one.
A must read article!
https://onlineessaydigital.com
urgent essay writing service
urgent essay writing service
https://onlineessaydigital.com https://onlineessaydigital.com
buy essay online reviews - 15-12-20 04:12:01
Amazing all kjnds of great information!
Bestt Essay writing
buy essay online reviews https://writemyessaybest.com/
help essay - 15-12-20 03:12:30
Reqlly loads of amazing data!
Best Essay writing
help essay https://writingmypaper.com
custom essay writing - 14-12-20 18:12:21
My brother suggested I might like this web site.
He was totally right. This post trully made my day.
You cann't imagine simply how much time I had
spent for this information! Thanks!
https://yescheapessaywriting.com
custom essay writing
custom essay writing
https://yescheapessaywriting.com https://yescheapessaywriting.com
top essay writing service - 14-12-20 16:12:08
What i don't understood is in fact how you are now not really a
lot more well-preferred than you might be right now. You're so intelligent.
You know therefore significantly wth regards to this topic,
made me in mmy view believe it from a lot of varied angles.
Itts like women andd men are not involved until it is something
to accoomplish with Lady gaga! Your own stuffs nice.
Always deal with it up!
https://writinessayideas.com
top essay writing service
top esway writing service
https://writinessayideas.com https://writinessayideas.com
write papers for me - 14-12-20 07:12:35
I am actually glad to read this weblog posts which contains
tons of helpful facts, thanks for providing such data.
https://goodpaperwritingservices.com
wrrite papers for me
write papers for me
https://goodpaperwritingservices.com https://goodpaperwritingservices.com
help me write - 13-12-20 17:12:57
hello there and thank you for your information – I have definitely picked up something new from right here.
I did however expertise some technical isaues ueing this web
site, as I experienced to reload the site llts of tiimes previous to I could get
it to load correctly. I had been wondering if your webb hostiing is OK?
Not that I amm complaining, but slow loading instances times will sometimes affect your placement in google and could damage your quality score if
ads and marketing with Adwords. Well I'm adding
tnis RSS to my e-mail and can look out for much more of your respective interesting content.
Make sure you update this again very soon.
https://foracademicwriting.com
help me write
help me write
https://foracademicwriting.com https://foracademicwriting.com
best college paper writing service - 12-12-20 22:12:07
What's up, I llog on to your blogs regularly.
Your story-telling style is witty, keep doing
what you're doing!
https://howtowriteanessay28058749.wordpress.com/bcci-competency-essay-writing-guide
best college paper writing service
best college paper writing service https://compare-and-c8618.hpage.com/buy-term-paper-online-to-boost-your-academic-performance.html
fast essay writing service - 12-12-20 17:12:48
Wonderful goods from you, man.I've understand your stuff
previous to and you are just extremely fantastic.
I really like whatt you have acquired here, certainly like what you're saying and the way in which yyou
say it. You make iit enjoyable and you still take care of to keedp iit
smart. I can't wait to read much more from you. This is
really a great web site.
https://clubcustomessay.com
fast essay writing service
fast essay writing service
https://clubcustomessay.com https://clubcustomessay.com
buy essay online reviews - 12-12-20 07:12:21
You actually stated this effectively!
Best Essay writing
buy essay online reviews https://buyessayonlinereviews.com/
paper writing service - 12-12-20 07:12:46
Great material. Regards.
Best Essay writing
paper writing service https://termpaperwriterservice.com
Nicely put. With thanks!
writing paper
writing paper https://qualitywritingpaper.com/
buy essays online - 11-12-20 11:12:54
Thank you. Numerous content.
Best Essay writing
buy essays online https://buyessaysearch.com
legal essay writing service - 11-12-20 04:12:01
Magnificent beat ! I wish to apprentice while you amend your site, how could i subscribe forr a
blg site? The account helped me a acceptable deal.
I had been a little bit acquainted oof this your brodcast offered bright clear idea
https://elvyn14hrzd3vl.medium.com/how-to-write-an-argumentative-essay-ppt-42d7ce42ad54
legal essay writing service
legal essay writing service http://5fb9e2f1e10b0.site123.me/blog/tips-on-how-to-develop-a-school-essay-writing-timeline
cheap essay writing service - 11-12-20 01:12:53
Perfectly spoken without a doubt. !
Best Essay writing
cheap essay writing service https://writemyessaybest.com/
buy essay online reviews - 11-12-20 00:12:46
Great advice Thanks a lot!
Best Essay writing
buy essay online reviews https://writepapersforme.com/
essays writing services - 10-12-20 20:12:33
You made your point!
essays writing services
paper writing services https://webtheessaywriter.com/
writing paper - 10-12-20 16:12:07
You made your position quiite well.!
writing paper
writing paper https://pluswritemypaper.com/
writing service - 10-12-20 04:12:00
You said it superbly.
writing service
writing service https://searchwritingservicesc.com/
paper writing service - 10-12-20 02:12:49
Youu revealed this wonderfully!
paper writing service
paper writing service https://fastpaperwritingservice.com/
essay writer service - 10-12-20 02:12:04
Regards! A lot of stuff!
essay writer service
essay writer service https://goodtheessaywriter.com/
essay writing service - 15-12-20 12:12:13
This is nicely expressed! .
Best Essay writing
essay writing service https://argumentativeresearch.com