Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.02.2009, 15:34   #1
iankov
Форумчанин
 
Регистрация: 04.01.2009
Сообщений: 188
По умолчанию Ограничение видимости скриптам

Выделил я под веб-сервер скажем каталог htdocs как это сделано в xampp.
Теперь можно создать там пхп скрипт и в нем создать функцию на удаление файла/каталога и запустить с параметром ../ например. И скрипт выйдет таким образом за пределы папки htdocs и таким образом можно весь диск удалить.
Так вот: как можно поставить ограничение, чтобы скрипты могли оперировать только в заданной директории в во всех поддиректориях, но чтобы не могли получать доступ за пределами заданной директории.
iankov вне форума Ответить с цитированием
Старый 19.02.2009, 15:38   #2
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

любые скрипты запускаются от определенного пользователя, которому можно ограничить права, впрочем, если вы не занимаетесь хостингом - вам об этом думать не нужно
свободен...
wall66 вне форума Ответить с цитированием
Старый 19.02.2009, 15:41   #3
iankov
Форумчанин
 
Регистрация: 04.01.2009
Сообщений: 188
По умолчанию

ну в общем то, интересуюсь как это делают на хостингах. Там ведь выйти за пределы директории не удается. Где и что и куда прописать для создания ограничей? Подозреваю что в httpd.conf нужно править....
iankov вне форума Ответить с цитированием
Старый 19.02.2009, 20:49   #4
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Например в linux создаем корневой для программы каталог с помошью команды chroot, и готово.

Но эта тема очень обширная и лучше ишите литературу...
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 19.02.2009, 21:56   #5
iankov
Форумчанин
 
Регистрация: 04.01.2009
Сообщений: 188
По умолчанию

ну вот дам я команду скрипту unlink('d:/file.txt');
или же для линукса unlink('usr/home/file.txt');
и полетит файл как миленький....
iankov вне форума Ответить с цитированием
Старый 20.02.2009, 01:41   #6
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

не апач надо настраивать, а РНР.
Там можно указать, какие функции нельзя использовать.
Вот тут смотрите список нежелательных функций. Кстати, при включении "безопасного" режима, возможность их использования отключается автоматом. Но я бы не советовал юзать "безопасный" режим.
SkyM@n вне форума Ответить с цитированием
Старый 20.02.2009, 16:45   #7
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Переписано по причине неоднозначности высказываний.
Если кого-то ввёл в заблуждение извиняюсь.
Существуют несколько ситуаций при которых может быть необходимо ограничить доступ php к файлам:
1)Защитить систему от взлома через уязвимости кода - те исключить доступ или удаление файлов через запросы пользователя. PHP работает с веб-сервером apache в нашем случае. У apache есть такой модуль как mod_security. C помошью этого модуля можно фильтровать всё запросы идущие через apache. Как работает читайте здесьwww.modsecurity.org. А так же рекомендуется использовать mod_rewrite, чтобы затруднить взлом.
2)Полностью ограничить доступ приложений - те вообще запретить и apache и php работу с файлами "выше" определённой директории. Для этого можно использовать chrooting. Средства chrooting, создают новую структуру корневого каталога, перемещая в него все файлы демона, и выполняя демон в новой среде. Те демон (и все дочерние процессы) будут работать с созданным нами каталогом. Ключевое слово здесь "дочерние процессы", тк php "у нас" работает как модуль Apache или cgi-приложение. PHP будет дочерним процессом и выше установленной нами chroot директории попасть не сможет.
3)Частично ограничить доступ php. Попытаться грамотно писать в safe_mode.

Код:
Меня поражает то, что создатель поста даже не удосужился 
поискать информацию по тому что я написал ему сразу. 
В связи с чем у меня возникло много мат-перематных мыслей.
Если кому-то нужны ссылки и названия книг по этой теме пишите.
Стрелок-охотник

Последний раз редактировалось mv28jam; 20.02.2009 в 18:54. Причина: пост Заслуженного модераторатора
mv28jam вне форума Ответить с цитированием
Старый 20.02.2009, 16:55   #8
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Цитата:
Сообщение от mv28jam Посмотреть сообщение
Урок информатики.
Что есть php!? Это модуль apache или cgi-приложение apache в зависимости от того как вы его установите.
Не в обиду вам сказано, но с такими учениями ученики ваши двоечниками будут. РНР - это не Апач, а отдельное приложение, функционирующее прекрасно САМОСТОЯТЕЛЬНО. (и до появления Апача, кстати)

Но соглашусь с вами по поводу изменения корневой директории - это, имхо наиболее хороший вариант.

Последний раз редактировалось SkyM@n; 20.02.2009 в 16:57.
SkyM@n вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
область видимости процедур Uli9 Общие вопросы Delphi 16 06.12.2008 21:09
область видимости переменных. С++ Prestigio Помощь студентам 10 07.07.2008 15:55
ошибся с областью видимости ? Иванчо Общие вопросы Delphi 8 25.10.2007 16:35
область видимости ? artem779 Общие вопросы Delphi 3 14.09.2007 09:34