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 :: Редактирование файлов через админку CMS - безопасность

 PHP.SU

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


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

> Без описания
dropoff
Отправлено: 03 Апреля, 2012 - 07:51:09
Post Id



Посетитель


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


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




Доброго времени суток.

Сделал в одном скрипте редактирование некоторых файлов через админку. Так как в файлах некоторая инфа часто меняется, то так удобнее.

Но столкнулся с тем, что можно получить доступ к другому файлу.

Файлы сами в разных папках. какой файл править получаю из GET
т.е. edit=/folder1/file1.php
Но вот если прописать edit=../../conf.php, то и его читать можно.
Сейчас тупо вырезаю из получаемого GET .. (две точки), чтобы нельзя было лазить в другие каталоги. Но вроде как это не особо и правильно.

Как тут лучше поступить?
 
 Top
DelphinPRO
Отправлено: 03 Апреля, 2012 - 08:09:18
Post Id



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


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


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




Запрос в url :
index.php?edit=conf

обработка например так
PHP:
скопировать код в буфер обмена
  1. isset($_GET['edit']) {
  2.         $editing = preg_replace('/[^a-zA-Z]/', '', strtolower($_GET['edit']));
  3.         if (empty($editing)) {
  4.                 die('Incorrect url');
  5.         }
  6.         $editing = '/folder/' . $editing . '.php';
  7. }

(Добавление)
dropoff пишет:
Но вроде как это не особо и правильно.

так то да. можно ведь и абсолютный путь ввести без точек
/home/dir/dir/important.file


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
dropoff
Отправлено: 03 Апреля, 2012 - 08:18:04
Post Id



Посетитель


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


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




Вся штука в том, что там несколько папок и вложенных папок и файле не только php, но и html и css и js
по этому в get ставлю полный путь.
Т.е. файл может лежать не только /file.php, но и /folder/folder/file.php и /folder/file.php
(Добавление)
Как вариант заранее занести в массив весь список нужных файлов для изменения. Но файлы добавляются или удаляются.

Если тут получается сильно заковыристо, может тогда вообще отказаться от этого и править непосредственно через FTP?
 
 Top
DelphinPRO
Отправлено: 03 Апреля, 2012 - 08:33:08
Post Id



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


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


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




сорри, невнимательно прочитал. Улыбка


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
avtor.fox
Отправлено: 03 Апреля, 2012 - 09:03:26
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




Данная система будет работать на "конечного" пользователя или для Вас? Ибо для себя мне гораздо удобней редактировать файлы по фтп, а для пользователей есть система редактирования страничек (не файлов). Или я Вас неправильно понял.

А ещё лучше привести пример структуры сайта и какие именно файлы нужно изменять. Улыбка

(Отредактировано автором: 03 Апреля, 2012 - 09:04:00)

 
 Top
dropoff
Отправлено: 03 Апреля, 2012 - 09:12:48
Post Id



Посетитель


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


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




Для конечного. Мне то не сложно и по ftp правочку сделать, а вот не шарящим удобнее из админки.

Конечной структуры нет. Папки и файлы добавляются и удаляются.
Есть отдельная папка files в ней уже и файлы и папки как попало лежат.
Т.е. как писал выше, некоторые могут быть в подпапках, некоторые в корне и т.д...
А вот корневая не меняется. Т.е. название как есть files, так и остается.
Я вот думаю может как-то на ней фиксировать файлы? Т.е. если файл не из этой папки, то не редактировать его вовсе, если из этой, то открывать.
 
 Top
avtor.fox
Отправлено: 03 Апреля, 2012 - 09:16:17
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




Какая информация содержится в этих файлах? В них текст, стили, html или вовсе контент для страничек сайта? Улыбка
 
 Top
dropoff
Отправлено: 03 Апреля, 2012 - 09:21:08
Post Id



Посетитель


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


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




html, css - как положено html и css
php файлы со всякими мелкими функциями или константами.
Сейчас то все работает корректно, но вот возможность править другие файлы, не из папки files эт большая такая дырень получается Радость
 
 Top
EuGen Администратор
Отправлено: 03 Апреля, 2012 - 09:22:30
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




dropoff
Равно как и php-файлы из "правильной" папки, так как в этом случае создать там какой-либо веб-шелл не составляет труда.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
avtor.fox
Отправлено: 03 Апреля, 2012 - 09:33:26
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




По моему не имеет смысла плясать с бубном и ваять редактирование html, css и тем более php через веб форму. Опасно, ненужно и непрактично.

Если конечный пользователь "собирается" редактировать файлы через веб морду, то он естественно должен знать язык разметки, стилей и пхп.
Я склонен к фтп. А Вы ещё раз подумайте над необходимостью реализации данной фичи.
 
 Top
snikers987
Отправлено: 03 Апреля, 2012 - 09:33:39
Post Id



Участник


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


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




Если php файлы не вызываются на прямую из этой папки, а к примеру подключаются, нужно отключить интерпретатор для этой папки.

По поводу вопроса:
PHP:
скопировать код в буфер обмена
  1.  
  2. $sContent = file_get_contents($_SERVER['DOCUMENT_ROOT'].'/users_dir/'.$_GET['path']);
  3.  


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
dropoff
Отправлено: 03 Апреля, 2012 - 09:35:40
Post Id



Посетитель


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


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




EuGen, там ограничение доступа есть. Т.е. не каждый может править файлы из админки.
Но вот лазить по другим файлам, тем у кого да же доступ есть не желательно совсем.
Запускать файлы из этот папки не получится. php файлы инклудятся в других.
В смысле там
PHP:
скопировать код в буфер обмена
  1. <Files *.php>
  2. Order Deny,Allow
  3. Deny from all
  4. </Files>

(Отредактировано автором: 03 Апреля, 2012 - 09:37:56)

 
 Top
avtor.fox
Отправлено: 03 Апреля, 2012 - 09:37:11
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




Ломаются любые сайты. Хм
 
 Top
DelphinPRO
Отправлено: 03 Апреля, 2012 - 09:43:48
Post Id



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


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


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




dropoff пишет:
А вот корневая не меняется. Т.е. название как есть files, так и остается.
Если есть корневая папка, то можно канонизировать абсолютный путь к файлу
realpath($_GET['edit']) - это "развернет" все точки в реальные пути файловой системы,
и проверять наличие вначале полученного пути строки с $_SERVER['DOCUMENT_ROOT'].'/root_edit_folder/'


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
dropoff
Отправлено: 03 Апреля, 2012 - 10:02:56
Post Id



Посетитель


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


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




DelphinPRO, спасибо!

avtor.fox, не спорю Радость
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB