PHP Conference Nagoya 2025

Настройка во время выполнения

Поведение функций зависит от установок в файле 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

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top