У меня есть некоторые проблемы с безопасностью моих веб-сайтов IIS.
Из PHP-файлов (FastCGI) на нашем сервере скрипты могут читать корневой каталог моей системы (c:\
), но даже перечислить содержимое c:\windows
. Что еще более хлопотно, я даже могу создавать каталоги в корне, например: mkdir('c:\asdasd');
, и работает без проблем; Я даже могу читать каталоги других веб-сайтов (так что на самом деле, возможно, я мог бы отобразить все дерево каталогов системы из сценария PHP). Я считаю, что это огромная проблема безопасности. Никто не должен уметь читать или писать c:\
, или содержимое другого размещенного веб-сайта.
Я знаю, что есть open_basedir в PHP, но я думаю, что установка этой директивы не решает проблему, поскольку я мог бы также использовать любые другие серверные языки для доступа к тем же упомянутым каталогам.
Дерево каталогов моих веб-сайтов выглядит так:
c:\net\web\php\
|- website1
|- other
|- htdocs
|- website2
|- other
|- htdocs
|- website3
|- other
|- htdocs
|- ...
Исходные файлы веб-сайтов находятся в htdocs
каталог, так что это «корневой» каталог этих веб-сайтов.
Я просто хочу включить разрешения на чтение / запись для первого родительского каталога веб-сайта, например, c:\net\web\php\website1
(например, "c:\net\web\php\website1\other
"можно было бы написать, но c:\net\web\php\
не должно быть).
Как я могу таким образом ограничить доступ?
Спасибо!
Запускайте соответствующие программы под очень ограниченной учетной записью - той, которая не имеет разрешений на запись или выполнение за пределами вашего местоположения веб-содержимого.