| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Администрирование Web серверов и Web служб > Как запретить PHP скриптам листинг файлов? |
| Автор: karataev 21.6.2006, 23:38 |
| У меня такая проблема: у меня хостинг на виртуальном сервере. Я даю некоторым людям ftp-аккаунты чтобы они могли тестировать свои PHP скрипты на моем сервере (мы занимаемся совместным созданием проекта). Есть папка project в ней вложены папки вида user1, user2, user3... По FTP юзеры могут попасть только в свои юзерские директории и во все вложенные директории, но выше попасть не могут. Но сегодня я крупно пострадал от того что один из моих юзеров, что поумнее, взял да и получил доступ ко всем файлам, лежащим выше его директории. Просто из PHP скрипта, через readfile(). Также он смог изменять и удалять любые файлы на сервере. Вопрос: как сделать чтобы из юзерских директорий скрипты могли иметь доступ только к юзерским файлам, но не к тем что лежат в папках выше? |
| Автор: Mal Hack 21.6.2006, 23:44 |
| Это надо на уровне сервера разграничивать php. Утилита вроде бы называется suphp. Но насколько я помню, завязана она с пользователями Апача, т.е. сервер запускается с разными правами чтоли. |
| Автор: karataev 22.6.2006, 22:04 |
| Блин. Хостинг то виртуальный...получается что мы сидим с юзерами под одним линуксовским юзером, только по FTP у нас разные права. А может еще варианты есть? |
| Автор: Mal Hack 22.6.2006, 23:17 |
| Других вариантов нет. |
| Автор: karataev 22.6.2006, 23:20 |
| Получается что мне нельзя никому давать FTP-аккаунты если я не хочу утечки информации??? |
| Автор: Alex13 23.6.2006, 07:28 |
| karataev, получается. |
| Автор: karataev 23.6.2006, 18:19 |
| Тогда подскажите пожалуйста как сделать с помощью .htaccess перенаправление такого типа: вводится адрес: http://takih.net.ru/project/имя_юзера/путь_к_скрипту_юзера нужно переделать его в адрес такого вида: http://takih.net.ru/project/check.php?u=имя_юзера&p=путь_к_скрипту_юзера Я подумал что можно скриптом проверять наличие в скриптах юзера недопустимых путей (которые выше его директории) и вырезать их из кода, после чего уже запускать сам скрипт. |
| Автор: Mal Hack 23.6.2006, 18:34 |
| Глянь в доке апача про mod_userdir .htaceess тут не поможет. |
| Автор: GZep 19.7.2006, 12:21 | ||
Поможет! Там есть специальная деректива, которая позволяет включать в начало каждого php скрипта специальный скрипт(который ты укажешь). |
| Автор: karataev 20.7.2006, 07:45 |
| Спасибо, попробую что нибудь сделать |
| Автор: GZep 20.7.2006, 12:29 |
| Да незачто..... Если получится так сделать, напишешь результаты...... |
| Автор: Mal Hack 20.7.2006, 14:30 |
| GZep, и это ты называешь решением проблемы? Бред. Ну хорошо, файл ты запстил, а толку. Если я в основном скрипте напишу scandir("/") и если у меня будут права на чтение данной папки, я ее все равно прочитаю. |
| Автор: regret 20.7.2006, 16:49 |
| mod_userdir |
| Автор: GZep 21.7.2006, 13:16 |
| Ну, а как по-Вашему ещё можно решить подобную проблему? |
| Автор: GZep 2.8.2006, 10:13 |
| А нельзя просто при закачки файлов, содержащих скрипты, на сервер, проверять их на наличие "опасных" функций? Как вариант решения этой задачи сойдет..... |
| Автор: GZep 15.9.2006, 13:48 |
| А про дерективу disable_functions чё скажите? решает? |
| Автор: Mal Hack 15.9.2006, 15:35 |
| Да, если ее можнго через .htaccess установить... Но думаю вряд ли. |
| Автор: ZeeLax 16.9.2006, 10:33 |
| GZep, вопрос только в том, что такое "опасные" функции |
| Автор: nerezus 16.9.2006, 14:30 |
| GZep, опасных функций в PHP нет. |
| Автор: Mal Hack 16.9.2006, 20:31 |
Зато, через большинство можно так или иначе гадостей сделать... |
| Автор: MuToGeN 25.9.2006, 19:34 |
| В настройках вирт.хоста php_admin_value open_basedir /path/to/fopen_safe/directory/:/path/to/another/fopen_safe/directory/ И будет вам счастье. |
| Автор: GZep 4.10.2006, 13:59 | ||
я так понял, что эту дерективу простым людям хостеры использовать не дают? |
| Автор: MuToGeN 5.10.2006, 11:09 |
| GZep, да. php_admin_value - директива для конфига апача. Если ты не хостер, то смысл изначального вопроса мне не понятен. |
| Автор: GZep 5.10.2006, 13:46 | ||
в .htaccess разрешено использовать? навернека, если даже можно, бесплатные хостинги не разрешают её использовать....или нет? |