(начинающий php / apache здесь)
Использование Apache (в качестве службы на Windows) с PHP я понял, что по умолчанию веб-пользователь может получить доступ только к \htdocs
содержимое, сам скрипт PHP может читать где угодно (не ограничиваясь внутри \htdocs
). Что произойдет, если мы не уверены в содержании скрипта PHP и хотим ограничить доступ к файловой системе?
Предположим, что мы хотим, чтобы люди могли изменять содержимое файлов .php, но в то же время применять ограничения на уровне файловой системы. например: script1.php
может читать / писать / выполнять все что угодно c:\apache\htdocs
. Может только для чтения из c:\f1\
но может НЕ получить доступ к любому другому каталогу в целом.
Как можно убедиться, что его / ее PHP-программа имеет очень определенные разрешения в окнах при чтении или записи (например, с file_exists()
, mkdir()
, proc_open()
, fwrite()
ГД:imagejpg()
) когда снаружи \htdocs
?
Я прочитал, что Apache как сервис работает как LocalSystem
учетная запись что есть полное чтение и запись (777
) разрешения на большинстве локальных путей.1
c:\apache\htdocs
, script1.php
также разрешено чтение-запись в c:\f1
в то время как script2.php разрешен только для чтения из c:\f2
c:\f1
Спасибо за ваше время,
-Fotis
В ваших настройках Apache, httpd.conf
должно быть что-то вроде этого:
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User www-data
Group www-data
Это будет пользователь и группа, в которой Apache будет управлять вашим сайтом. Вы просто должны ограничить права этого пользователя для файлов, к которым вы не хотите, чтобы они имели доступ.
Других решений пока нет …