Uchkuma пишет:Похоже, это и есть вариант решения проблемы в данном случае? Знаю, что мой хостинг это позволяет, но сам с CGI-скриптами никогда дела не имел.
Хотелось бы изучить по детальнее, как это делается. Буду рад ссылкам на русскоязычную литературу
Действительно в вашем случае это буде качественное и эффективное решение задачи блокировки фунций - поскольку ведь если заблокировать их использование в самом PHP-интепретаторе то не придется проверять текущий динамический PHP-код на предмет их наличия - и значит не надо будет писать свой проверяющий интерпретатор - при том что пользовательские PHP-скрипты можно будет никак не ограничивать по динамическому коду
Обычный CGI-скрипт представляет собой приложение которое запускается web-сервером и обменивается данными с ним за счет стандартного потока ввода/вывода - при этом конечно все данные должны соответствовать HTTP-протоколу и в частности CGI-скрипт при работе обязан выводить ряд обязательный HTTP-заголовков - иначе возникается 500 ошибка С точки зрения настройки Apache достаточно указать в файле .htaccess для нужных файлов тип обработчика
cgi-script - после чего при обращении к определенному web-ресурсу если он является CGI-скриптом то передается на исполнение Достаточно подробно механизм CGI-скриптом описан здесь
http://forum.php.su/topic.php?fo...m=65&topic=3
Далее вам необходимо выяснить точную верси ОС хостинг-провайдера и собрать для нее исполняемый файл PHP-интерпрератора - если у вас имеется SSH то можно собирать прямо на сервере указывая к конфигурационных файла
prefix="/path/to/home/dir" - а если нет то можете установить на виртуальную машину такую же ОС и скомпилировать там и потом перенести исполняемый файл - последний вариает описывался здесь
http://progbook[dot]ru/2008/07/31/ph[dot][dot][dot]jj-kostarev[dot]html После того как вы получить свой исполняемый файл PHP-интерпрератора причем можете при компиляции добавить туда любые требуемые библиотеки - вы можете установить его как CGI-скрипт для обработки файло с расширением PHP путем установки директивы Action
Для того чтобы указать получившейся инстанции интерпретатора путь к конфигурационному файлу php.ini необходимо использовать переменную окружения PHPRC с соответствующим путем - ее можн установить из .htaccess при настройке директив для CGI-скрипта - а именно за счет директив SetEnv и PassEnv Также для финальной настройки требуется установить правильные права и принадлежности соответствующих файлов - и по возможности использовать suexec
Вы можете использовать полученный PHP-интерпретатор везде а можете специально для функции пользовательких PHP-скриптов - добавив все нужные ограничения