Поведение функций зависит от установок в файле php.ini.
Имя | По умолчанию | Место изменения | Список изменений |
---|---|---|---|
phar.readonly | "1" | INI_ALL |
|
phar.require_hash | "1" | INI_ALL |
|
phar.cache_list | "" | INI_SYSTEM |
Краткое разъяснение конфигурационных директив.
phar.readonly
bool
Этот параметр отключает поддержку создания или модификации Phar-архивов
с помощью потока phar
и записи объектов Phar на диск.
Этот параметр всегда должен быть включён на рабочих машинах,
поскольку поддержка записи модулем phar позволила бы простое создание,
основанных на PHP, вирусов в случае присутствия других уязвимостей в системе общей безопасности.
Замечание:
Этот параметр может быть отключён в php.ini только исходя из соображений безопасности. Если параметр
phar.readonly
отключён в php.ini, пользователь может включитьphar.readonly
в скрипте или отключить его позже. Если параметрphar.readonly
включён в php.ini, скрипт может безвредно "повторно включить" переменную INI, но не может отключить её.
phar.require_hash
bool
Этот параметр сделает обязательной какую-либо подпись (в настоящий момент поддерживаются MD5, SHA1, SHA256, SHA512 и OpenSSL) для всех открываемых Phar-архивов и сделает невозможной обработку любого Phar-архива, не содержащего подпись.
Замечание:
Этот параметр может быть отключён в php.ini. Если параметр
phar.require_hash
отключён в php.ini, пользователь может включитьphar.require_hash
в скрипте или отключить его позже. Если параметрphar.require_hash
включён в php.ini, скрипт может безвредно "повторно включить" переменную INI, но не может отключить её.Этот параметр не влияет на чтение простых tar-файлов при помощи класса PharData.
phar.require_hash
не обеспечивает безопасности как таковой -
это всего лишь мера по защите от запуска повреждённого Phar архива, поскольку
кто угодно, имеющий возможность модифицировать архив может с тем же
успехом модифицировать и подпись.
phar.cache_list
string
Позволяет проводить разметку phar-архивов, для которых необходимо осуществить предварительный разбор в момент старта веб-сервера. Обеспечивает повышение производительности за счёт запуска файлов вне phar-архива со скоростью, очень близкой к той, которая была бы при запуске этих файлов традиционным способом с диска.
Пример #1 Пример использования phar.cache_list
в php.ini (windows): phar.cache_list =C:\путь\к\phar1.phar;C:\путь\к\phar2.phar в php.ini (unix): phar.cache_list =/путь/к/phar1.phar:/путь/к/phar2.phar