2010-11-04 3 views
1

Я разрабатываю конструктор сайтов типа WYSIWYG в JS для людей, которые не знают HTML/CSS. Все сделано, но я хочу сделать это как можно проще. В идеальном мире они просто загружают все файлы на свой хост и выполняются с ним. Проблема, с которой я сталкиваюсь, у меня есть несколько файлов и папок, которые нужно писать, но PHP не имеет разрешения, если я не CHMOD этих конкретных файлов и папок на 777.Альтернатива CHMOD 777

Я действительно не хочу этого делать и надеялся, что у меня есть какая-то альтернатива, и я не хочу, чтобы меня критиковали за то, что он наложил CHMOD 777 на всех. Есть ли что-нибудь, что я могу сделать (это было бы просто для моих пользователей), чтобы позволить PHP писать в файлы/папки без разрешения для КАЖДОГО?

Я не могу создать PHP сами файлы/папки, потому что у него нет доступа к записи в корневой каталог.

ответ

3

Вы можете chgrp файлы в группу веб-сервера (или PHP, если он настроен на запуск как собственный пользователь) и chmod 770. Но это не принесло бы вам особого внимания.

В качестве альтернативы вы можете сделать то, что делают некоторые другие CMS PHP (например, Joomla) - когда файл необходимо изменить, подключите сервер к себе через FTP (с учетными данными владельца сайта) и загрузите файл замены ,

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

+0

Обратите внимание, что метод FTP не дает вам никакой защиты, если пароль FTP хранится в файле на сервере. – PleaseStand

+0

Не много, нет. Но это делает меня менее неудобным, чем весь сайт 777. Пароль может быть в .php-файле и, таким образом, недоступен случайным незнакомцам, если CMS не имеет особого смысла и разрешает доступ к файлам, которые не следует изменять (то есть: сам и его конфигурационные файлы). – cHao

+0

Я предполагаю, что файлы chmodding на '660' будут вполне достаточными, все те люди, которые считают, что их файлы конфигурации исполняются' [/ end pet peeve] ' – Wrikken

-1

Имейте пользователей CHMOD 777 в корневой каталог, создайте ли ваш сценарий новую папку и затем восстановите права корневого каталога.

+0

Этот ответ кажется самым простым и самым прямым. Есть ли какие-либо последствия для этого? – Jordan

+0

Главное, о чем я могу думать, это то, что если у пользователя нет доступа root/sudo, эта папка не будет удаляться, если они захотят удалить ваше приложение. – ceejayoz

+0

Предоставление произвольным пользователям доступа к критическим системным ресурсам * всегда * проблематично. В худшем случае злоумышленник установил скрипт, который сидит там, ожидая возможности установить корневой бэкдор. Это мгновенная эскалация привилегий, как только она запускается в тот момент, когда она может изменить системный корневой каталог. – tripleee

Смежные вопросы