Правила форума
Имя пользователя (login): Пароль: | Забыли пароль? | Регистрация

Коннектор и uploadAllow

Автор Сообщение
Коннектор и uploadAllow
Добрый день

Интересует решение проблем безопасности системы, а точнее как можно ограничить список разрешенных для загрузки (и отдельно для редактирования, но это отдельная история) файлов.

Попробовал использовать свойство коннектора вот такой вариант "uploadAllow" => array("image/jpeg"),
но коннектор как загружал и редактировал пхп файлы так и делает это не поперхнувшись.

Можно конечно попробовать использовать uploadDeny, но в этом есть очень большая проблема - фактически нужно запретить возможность загрузки (и редактирования) всех проблемных файлов, как то перл, пхп (несколько версий - php, php4, php5), руби, питон, явовские файлы или целый список дот-нетовских файлов - в общем перечень получается достаточно приличный, да и всего не упомнишь (а тем более маймтипы к ним, которые могут и отличаться от сервера к серверу).

В общем, если есть такая возможность ограничить доступ к файлам (то есть что бы нельзя было загрузить 1.txt, отредактировать его, а затем переименовать в 1.php) - расскажите о ней.

Благодарю,
Алексей
Re: Коннектор и uploadAllow
Забыл сказать - версия elFinder-a 2-бета3, хост Windows с IIS 7 если это имеет значение
Re: Коннектор и uploadAllow
Чтобы загружать только то, что разрешено надо сказать еще
"uploadOrder" => "allow,deny",
Чтобы запретить редактировать файлы - надо отключить эту команду
"disabled" => array("edit"),

Но правильней будет запретить запуск скриптов средствами сервера
Re: Коннектор и uploadAllow
Спасибо, сработало

Цитата: dio 16.01.2010 12:38
Чтобы загружать только то, что разрешено надо сказать еще
"uploadOrder" => "allow,deny",
Чтобы запретить редактировать файлы - надо отключить эту команду
"disabled" => array("edit"),

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


По поводу правильней полностью согласен, но далеко не всегда это представляется возможным. На моем хостинге, допустим, можно использовать как минимум пять различных языков. При этом простой установкой запрета на выполнение (0644) тоже не обойдешься - все равно выполняется. Единственным действенным способом является переопределение обработчиков для заданной директории через .htaccess и то, только в том случае, если нельзя закатать такой же файлик в публичную директорию.

Поэтому и возможность гибкой настройки правил для подключателя - это залог уменьшения головной боли у разработчиков, использующих elFinder.

Если нужна помощь как в проработке идеи, так и в разработке/тестировании необходимой функциональности - буду рад помочь.

P.S. Радею больше не за себя, а за неопытных разработчиков, которые могут по незнанию наломать достаточно много дров.

Алексей
Re: Коннектор и uploadAllow
Цитата: answerfor 16.01.2010 13:54

Если нужна помощь как в проработке идеи, так и в разработке/тестировании необходимой функциональности - буду рад помочь.



Хотите присоединиться к разработке? Пишите на dio(гав)std42.ru
Re: Коннектор и uploadAllow
Цитата: dio 16.01.2010 12:38

Чтобы запретить редактировать файлы - надо отключить эту команду
"disabled" => array("edit"),


Тогда ещё придётся и запретить переименовывать файлы:
"disabled" => array("edit", "rename")


Но возможно более комплексное решение будет запретить запись всех файлов с определёнными расширениями, например так:
"perms" => array(
   "/.(php|pl|py|rb)$/" => array(
      "write" => false
   )
)

таким образом любые операции записи в том числе и upload/edit/rename на указаный regex не будут давать доступа