cgi-bin вопрос

У меня есть доступ к общему веб-хостингу. Установленный там веб-сайт использует exec(). Месяца 4 назад функция была включена, но сейчас ее занесли в список disable_functions. Они поставили exec, passthru и shell_exec в этот список, но забыли поставить system:) Это заставляет меня думать, что администратор сервера не очень понимает, что он делает. Во всяком случае, теперь они говорят, что эти функции никогда не должны были включаться, и они не будут их повторно включать.

Установленный веб-сайт использует exec() для запуска некоторых php-скриптов, которые будут выполнять некоторую фоновую работу. Прямо сейчас я ищу, есть ли какой-либо другой «законный» способ запуска этих php-скриптов в фоновом режиме (я ожидаю, что system() будет работать, но, возможно, они также отключат его в будущем). А теперь мой простой вопрос: в предопределенной файловой структуре я вижу папку cgi-bin. Какова его польза? Из того, что я читал в Интернете, он используется для создания «динамических» страниц при доступе через браузер, но на сервере все равно установлен php, поэтому я не вижу его использования.


person Quamis    schedule 27.08.2010    source источник
comment
Вы можете использовать системный вызов perl system("command");, очень похожий на php, и он вряд ли будет заблокирован, если они не отключат cgi/perl   -  person Prix    schedule 28.08.2010


Ответы (1)


/cgi-bin/ – это каталог, в который следует поместить сценарий CGI.
Вы можете обойти ограничения на exec в PHP с помощью CGI.

Создайте файл с именем somefile.sh с содержимым:

#!/bin/sh
printf "Content-Type: text/plain\n\n"
#your code here

Это будет работать только в том случае, если /bin/sh действительно существует и является исполняемым (например, если вы не находитесь в chroot без /bin/sh)

Способов выполнить команду достаточно. Если они отключат CGI, вы можете продолжить с SSI.

person Lekensteyn    schedule 27.08.2010
comment
Теперь я получаю внутреннюю ошибку сервера. Я сделал sh.sh, изменил разрешения, чтобы исполняемый файл мог исполняться любой, у кого есть доступ к контенту #!/bin/bash echo "dsfsdfsdf" через сайт . com/cgi-bin/sh.sh - person Quamis; 27.08.2010
comment
Я забыл, что скрипты CGI должны отправлять заголовок Content-Type. Смотрите обновленный пост. - person Lekensteyn; 28.08.2010