El comportamiento de estas funciones se ve afectado por la configuración de php.ini.
Nombre | Por defecto | Cambiable | Historial de cambios |
---|---|---|---|
phar.readonly | "1" | INI_ALL |
|
phar.require_hash | "1" | INI_ALL |
|
phar.cache_list | "" | INI_SYSTEM |
He aquí una breve explicación de las directivas de configuración.
phar.readonly
bool
Esta opción deshabilita la modificación o creación de archivos Phar
usando el flujo phar
o el soporte para escritura de
objetos Phar. Este ajuste debería estar siempre activado en
máquinas de producción, ya que el soporte para escritura conveniente de la extensión phar
podría permitir la simple creación de un virus basado en PHP al asociarse
con otras vulnerabilidades de seguridad comunes.
Nota:
Este ajuste sólo puede ser desactivado en php.ini por motivos de seguridad. Si
phar.readonly
está deshabilitado en php.ini, un usuario puede habilitarphar.readonly
en un script o deshabilitarlo después. Siphar.readonly
está habilitado en php.ini, un scrip puede "re-habilitar" inofensivamente la variable INI, pero no puede deshabilitarla.
phar.require_hash
bool
Esta opción forzará a todos los archivos Phar abiertos a que contengan algún tipo de signatura (actualmente está soportadas MD5, SHA1, SHA256 y SHA512), y rehusará procesar cualquer archivo Phar que no contenga una signatura.
Nota:
Este ajuste sólo puede ser desactivado en php.ini por motivos de seguridad. Si
phar.require_hash
está deshabilitado en php.ini, un usuario puede habilitarphar.require_hash
en un script o deshabilitarlo después. Siphar.require_hash
está habilitado en php.ini, un scrip puede "re-habilitar" inofensivamente la variable INI, pero no puede deshabilitarla.Este ajuste no afecta a la lectura de ficheros tar planos con la clase PharData.
phar.require_hash
no proporciona ninguna seguridad per se,
es simplemente una medida contra la ejecución accidental de archivos Phar corruptos,
porque cualquiera que pueda alterar el Phar podría corregir fácilmente la firma.
phar.cache_list
string
Permite mapear archivos phar para que sean preanalizados en el arranque del servidor web, proporcionando una mejora de rendimiento que saca ficheros en ejecución de un archivo phar casi tan rápido como si esos ficheros se ejecutaran desde una instalación tradicional basada en disco.
Ejemplo #1 Ejemplo de uso de phar.cache_list
en php.ini (windows): phar.cache_list =C:\ruta\a\phar1.phar;C:\ruta\a\phar2.phar en php.ini (unix): phar.cache_list =/ruta/a/phar1.phar:/ruta/a/phar2.phar