Зачем использовать open_basedir с PHP как FastCGI на IIS?

Я видел несколько руководств, объясняющих установку PHP под IIS как FastCGI, рекомендующий установить open_basedir, чтобы он указывал на папку или сетевой путь, где находится содержимое веб-сайтов.

Когда я установил open_basedir на моем сервере приложений, при управлении файлами появилась следующая ошибка:
Предупреждение: действует ограничение open_basedir. Файл (C: \ Windows \ Temp \ php92E7.tmp) находится вне допустимых путей: (C: \ inetpub \ wwwroot)

Я понимаю, что могу установить временную директорию в inetpub, но я не понимаю, почему проблема использовать windows \ temp.

Есть ли какой-либо недостаток безопасности в PHP, так как FastCGI на IIS требует ограничений open_basedir?
Если нет, то почему это рекомендуется? Или это не обязательно?

1

Решение

Установка open_basedir (не только в Windows с IIS, но и с любой платформой на любом веб-сервере) является мерой безопасности, чтобы ограничить файлы, которые ваше приложение может читать, записывать, и включать.

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

Однако, если у вас есть изъян в вашей программе, ваши пользователи могут прочитать или включить (или даже записать) файлы, которые не являются частью вашего приложения. Это могут быть системные файлы, загруженные пользователем файлы или файлы других приложений. Вот почему open_basedir важен.

Как примечание, после установки open_basedir также задайте пути для других функций PHP (например, upload_tmp_dir), так как они также должны находиться под путем open_basedir.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]