Большая фига от Ioncube

Вот так красиво я обозвал статью, в которой пролью свет на курьезные события, о которых чуть было не забыл :)

Дело в том, что после старта PHPSECURE и его всестороннего тестирования, было логично, что мне захотелось защитить собственные проекты, сайты и всю инфраструктуру, связанную с моей работой.

И вот тут меня ждал сюрприз, в виде

Fatal error: The encoded file cannot be run because the php.ini setting ‘auto_prepend_file’ or ‘auto_append_file’ is in use. Please disable these settings, or contact the provider of the script. in Unknown on line 0

на одном из рабочих веб-сайтов.

Эта ошибка, в переводе на человеко-понятный язык означает, что на данном сайте скрипты закодированы при помощи Ioncube и разработчик, при кодировании исходного кода включил опцию, запрещающую использование таких директив PHP, как auto_prepend_file и auto_append_file.

Честно говоря, я вообще не понимаю смысла этой опции ioncube, ведь достаточно просто переименовать закодированный скрипт, например index.php в index-1.php, а на его место положить собственный файл index.php в котором написать:

<?
include «prepend.php»;
include «index-1.php»;
include «append.php»;
?>

И все — файлы подключены и ДО и ПОСЛЕ, а опция запрета теряет свою актуальность. Уповая на здравомыслие разработчиков программного обеспечения используемого на моем сайте, которым, к слову, я исправно плачу деньги за лицензию каждый месяц, я написал им письмо, с просьбой перекодировать файлы отключив эту опцию, на что был вежливо послан куда подальше :)

Но из любого минуса, можно извлечь плюс — я просто сел и написал собственное расширение PHP, повторяющее функционал auto_prepend_file, после чего проблема была решена.

Должен заметить, что я и сам пользуюсь лицензионным Ioncube и в процессе написания расширения, столкнувшись с проблемой segmentation fault в ioncube, обращался к разработчикам самого ioncube и вот они, хотя и не помогли мне (ну да, в этой жизни приходится барахтаться самому), но хотябы пожелали мне удачи, причем по ощущениям — вполне искренне :)

P.S. Также хочу дополнить, что после установки PHPSECURE в биллинговую систему, при помощи инструментария PHPSECURE я обнаружил множество попыток выполнить SQL-инъекции, различное прощупывание на предмет уязвимостей и т.п. и т.д.
Таким образом, были отправлены в бан некоторые IP, заблокировано пара аккаунтов особо отчаянных пользователей и в целом жить стало гораздо спокойнее.

P.P.S. Ну и самодовольство по поводу обхода бессмысленных ограничений разработчиков никуда не делось — утёр всем нос ;)