Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как запретить просмотр файлов в директории выше заданной

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
3d_killer
Отправлено: 30 Сентября, 2014 - 19:46:30
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




Добрый вечер всем, у меня есть самописный файловый менеджер скрипт лежит по пути
CODE (htmlphp):
скопировать код в буфер обмена
  1. сайт\admin\modules\filemanager\action

если скрипту передать такой путь : '../../../..' то он отобразит файлы и папки в директории сайта там где index, а если такой '../../../../..' то полезет выше и выведет все сайты на хосте.
В интерфейсе это ограничено, но если сделать подмену то попасть выше в директорию возможно, как можно это дело ограничить?
 
My status
 Top
dcc0
Отправлено: 30 Сентября, 2014 - 19:54:41
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




open_basedir в php.ni не спасет?

(Отредактировано автором: 30 Сентября, 2014 - 19:54:56)



-----
Март 2021. Бросил программирование
 
 Top
OrmaJever Модератор
Отправлено: 30 Сентября, 2014 - 19:59:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




3d_killer пишет:
как можно это дело ограничить?

правами unix пользователя. php или апач запущен от какого нибудь www-data, вот и дать ему права только на одну свою папку и никуда выше он не полезет


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
3d_killer
Отправлено: 30 Сентября, 2014 - 19:59:57
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




на том хосте править его нет возможности
(Добавление)
так апач то запущен один для всех сайтов
(Добавление)
если проставить с помощью директивы ini_set то администратор может то отредактировать это
 
My status
 Top
MiksIr
Отправлено: 30 Сентября, 2014 - 20:06:58
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


Ну раз самописный, то добавить туда проверку

PHP:
скопировать код в буфер обмена
  1. $requested_dir = realpath($requested_dir);
  2.  
  3. if (!$requested_url || strpos($requested_dir, __DIR__) !== 0) {
  4.    throw new AccessDeniedException();
  5. }

(Отредактировано автором: 30 Сентября, 2014 - 20:07:26)



-----
self-banned
 
 Top
3d_killer
Отправлено: 30 Сентября, 2014 - 20:20:41
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




MiksIr дело в том что администратор имеет права для редактирования этих скриптов, ему не составит труда удалить эту проверку
 
My status
 Top
MiksIr
Отправлено: 30 Сентября, 2014 - 20:33:21
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


Вы хотите защитить просмотр директорий выше текущей для администратора, который может редактировать php скрипты?
Тогда советы выше: chmod или open_basedir
В 5.3+ можно ужесточать open_basedir


-----
self-banned
 
 Top
3d_killer
Отправлено: 30 Сентября, 2014 - 20:43:26
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




не пойму что прописывать в php.ini пробую на денвере
на сервере три сайта
1
2
3
как сделать так чтобы находясь на 3 я не мог просматривать файлы выше 3, ну и на других тоже соответственно?
 
My status
 Top
dcc0
Отправлено: 30 Сентября, 2014 - 21:47:04
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




Пример
open_basedir=/var/www
Скрипт сможет погрузиться в глубины директории, а вот глотнуть свежего воздуха из /var уже нет

(Отредактировано автором: 30 Сентября, 2014 - 21:54:09)



-----
Март 2021. Бросил программирование
 
 Top
3d_killer
Отправлено: 30 Сентября, 2014 - 22:02:30
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




это да а если с первого сайта я кину переменную ../../../../2/
то тогда он попадет на второй сайт?
 
My status
 Top
dcc0
Отправлено: 30 Сентября, 2014 - 22:27:03
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




Мда, веб-сервер-то от одного пользователя работает, а если сайтов несколько, то...
придется придумывать какое-то правило ... чтобы работало для каждого виртуального хоста


-----
Март 2021. Бросил программирование
 
 Top
3d_killer
Отправлено: 30 Сентября, 2014 - 22:29:26
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




да печалька
 
My status
 Top
dcc0
Отправлено: 30 Сентября, 2014 - 23:14:32
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




В качестве предположения:
попытаться в тот же open_basedir после корня указать какую-то гипотетическую переменную, хранящую виртуальный хост.
Что-то вроде /var/ww/$VARIABLE
(если это возможно)

(Отредактировано автором: 30 Сентября, 2014 - 23:15:14)



-----
Март 2021. Бросил программирование
 
 Top
MiksIr
Отправлено: 01 Октября, 2014 - 13:57:27
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


Помог: 10 раз(а)

[+]


У вас к чему доступ то есть? К конфигу апача? К php.ini?


-----
self-banned
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с файловой системой и файлами »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB