запись php-скриптов в файлы, не предназначенные для записи в мире - PullRequest
2 голосов
/ 29 августа 2008

Как вы можете разрешить PHP-сценарию записывать в файл с ограничениями высокого уровня безопасности, например разрешать запись в него только одному пользователю?

Сложность заключается в том, что PHP-скрипт выполняется как пользователь с низкими разрешениями (может быть, apache, или www, или никто?), И даже если я chown apache the_writable_file, каталог, в котором он находится, может быть недоступен для записи. для пользователя низкого уровня. В общем, как обычно PHP может безопасно работать с локальными файлами?

Ответы [ 3 ]

2 голосов
/ 29 августа 2008

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

Решение состоит в том, чтобы запустить ваше веб-приложение в качестве вашего логина . Когда вы сделаете это, права доступа к файлам UNIX могут правильно заблокировать всех остальных. Есть несколько способов реализовать это, включая SuExec , suPHP или запуск PHP с FastCGI с mod_fcgid или mod_proxy_fcgid . FastCGI - мой любимый способ.

Другим решением является использование выделенного хоста или виртуального частного сервера.

0 голосов
/ 29 августа 2008

Все содержащие папки должны иметь разрешения на выполнение.

Например, если файл находится в /foo/bar/the_writable_file, каталоги "foo" и "bar" должны иметь разрешение на выполнение для доступа к __ableable_file, даже если у них нет разрешения на чтение / запись.

0 голосов
/ 29 августа 2008

Конечно, chgrp apache the_writable_file и chmod g+w the_writable_file. После этого только ваш защищенный пользователь и пользователь apache смогут писать в файл. Поскольку пользователю apache, как правило, запрещен вход в систему, вам нужно беспокоиться только о том, чтобы веб-пользователи записывали в ваш защищенный файл, используя демон http.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...