PHP Australia Conference 2015

Funciones restringidas/deshabilitadas por el modo seguro

Esta es una lista probablemente incompleta y posiblemente incorrecta de las funciones limitadas por el modo seguro.

Funciones limitadas por el modo seguro
Función Limitaciones
dbmopen() Comprueba si los ficheros o directorios que se van a utilizar tienen el mismo UID (propietario) que el script que está siendo ejecutado.
dbase_open() Comprueba si los ficheros o directorios que se van a utilizar tienen el mismo UID (propietario) que el script que está siendo ejecutado.
filepro() Comprueba si los ficheros o directorios que se van a utilizar tienen el mismo UID (propietario) que el script que está siendo ejecutado.
filepro_rowcount() Comprueba si los ficheros o directorios que se van a utilizar tienen el mismo UID (propietario) que el script que está siendo ejecutado.
filepro_retrieve() Comprueba si los ficheros o directorios que se van a utilizar tienen el mismo UID (propietario) que el script que está siendo ejecutado.
ifx_* Restricciones de sql_safe_mode, (!= modo seguro)
ingres_* Restricciones de sql_safe_mode, (!= modo seguro)
mysql_* Restricciones de sql_safe_mode, (!= modo seguro)
pg_lo_import() Comprueba si los ficheros o directorios que se van a utilizar tienen el mismo UID (propietario) que el script que está siendo ejecutado.
posix_mkfifo() Comprueba si el directorio en el que el script está operando tiene el mismo UID (propietario) que el script que está siendo ejecutado.
putenv() Obedece a las directivas ini safe_mode_protected_env_vars y safe_mode_allowed_env_vars. Ver también la documentación sobre putenv()
move_uploaded_file() Comprueba si los ficheros o directorios que se van a utilizar tienen el mismo UID (propietario) que el script que está siendo ejecutado.
chdir() Comprueba si el directorio en el que el script está operando tiene el mismo UID (propietario) que el script que está siendo ejecutado.
dl() Esta función está deshabilitada cuando PHP se ejecuta en modo seguro.
operador comillas invertidas Esta función está deshabilitada cuando PHP se ejecuta en modo seguro.
shell_exec() (equivalente funcional de las comillas invertidas) Esta función está deshabilitada cuando PHP se ejecuta en modo seguro.
exec() Solamente se pueden ejecutar ejecutables dentro de safe_mode_exec_dir. Por razones prácticas, actualmente no está permitido tener componentes .. en la ruta del ejecutable. escapeshellcmd() se ejecuta en el argumento de esta función.
system() Solamente se pueden ejecutar ejecutables dentro de safe_mode_exec_dir. Por razones prácticas, actualmente no está permitido tener componentes .. en la ruta del ejecutable. escapeshellcmd() se ejecuta en el argumento de esta función.
passthru() Solamente se pueden ejecutar ejecutables dentro de safe_mode_exec_dir. Por razones prácticas, actualmente no está permitido tener componentes .. en la ruta del ejecutable. escapeshellcmd() se ejecuta en el argumento de esta función.
popen() Solamente se pueden ejecutar ejecutables dentro de safe_mode_exec_dir. Por razones prácticas, actualmente no está permitido tener componentes .. en la ruta del ejecutable. escapeshellcmd() se ejecuta en el argumento de esta función.
fopen() Comprueba si el directorio en el que el script está operando tiene el mismo UID (propietario) que el script que está siendo ejecutado.
mkdir() Comprueba si el directorio en el que el script está operando tiene el mismo UID (propietario) que el script que está siendo ejecutado.
rmdir() Comprueba si el directorio en el que el script está operando tiene el mismo UID (propietario) que el script que está siendo ejecutado.
rename() Comprueba si los ficheros o directorios que se van a utilizar tienen el mismo UID (propietario) que el script que está siendo ejecutado. Comprueba si el directorio en el que el script está operando tiene el mismo UID (propietario) que el script que está siendo ejecutado.
unlink() Comprueba si los ficheros o directorios que se van a utilizar tienen el mismo UID (propietario) que el script que está siendo ejecutado. Comprueba si el directorio en el que el script está operando tiene el mismo UID (propietario) que el script que está siendo ejecutado.
copy() Comprueba si los ficheros o directorios que se van a utilizar tienen el mismo UID (propietario) que el script que está siendo ejecutado. Comprueba si el directorio en el que el script está operando tiene el mismo UID (propietario) que el script que está siendo ejecutado. (sobre source y target)
chgrp() Comprueba si los ficheros o directorios que se van a utilizar tienen el mismo UID (propietario) que el script que está siendo ejecutado.
chown() Comprueba si los ficheros o directorios que se van a utilizar tienen el mismo UID (propietario) que el script que está siendo ejecutado.
chmod() Comprueba si los ficheros o directorios que se van a utilizar tienen el mismo UID (propietario) que el script que está siendo ejecutado. Además, no se pueden establecer el SUID, el SGID y los bit adherentes
touch() Comprueba si los ficheros o directorios que se van a utilizar tienen el mismo UID (propietario) que el script que está siendo ejecutado. Comprueba si el directorio en el que el script está operando tiene el mismo UID (propietario) que el script que está siendo ejecutado.
symlink() Comprueba si los ficheros o directorios que se van a utilizar tienen el mismo UID (propietario) que el script que está siendo ejecutado. Comprueba si el directorio en el que el script está operando tiene el mismo UID (propietario) que el script que está siendo ejecutado. (Nota: solamente se comprueba el objetivo)
link() Comprueba si los ficheros o directorios que se van a utilizar tienen el mismo UID (propietario) que el script que está siendo ejecutado. Comprueba si el directorio en el que el script está operando tiene el mismo UID (propietario) que el script que está siendo ejecutado. (Nota: solamente se comprueba el objetivo)
apache_request_headers() En modo seguro, las cabeceras que comiencen con authorization (sin considerar mayúsculas-minúsculas) no serán devueltas.
header() En modo seguro, el uid del script se añade a la parte realm de la cabecera WWW-Authenticate si se establece esta cabecera (usada para Autenticación HTTP).
Variables PHP_AUTH En modo seguro, las variables PHP_AUTH_USER, PHP_AUTH_PW, y AUTH_TYPE no están disponibles en $_SERVER. En cualquier caso, se puede emplear aún REMOTE_USER para USER. (Nota: solamente se ve afectada desde PHP 4.3.0)
highlight_file(), show_source() Comprueba si los ficheros o directorios que se van a utilizar tienen el mismo UID (propietario) que el script que está siendo ejecutado. Comprueba si el directorio en el que el script está operando tiene el mismo UID (propietario) que el script que está siendo ejecutado.
parse_ini_file() Comprueba si los ficheros o directorios que se van a utilizar tienen el mismo UID (propietario) que el script que está siendo ejecutado. Comprueba si el directorio en el que el script está operando tiene el mismo UID (propietario) que el script que está siendo ejecutado.
set_time_limit() No tiene efecto cuando PHP se está ejecutando en modo seguro.
max_execution_time No tiene efecto cuando PHP se está ejecutando en modo seguro.
mail() En modo seguro, el quinto parámetro está deshabilitado.
session_start() El propietario de un script debe ser el mismo que el propietario de un directorio de session.save_path si se emplea el gestor files predeterminado de session.save_handler.
Todas las funciones de sistema de ficheros y flujos. Comprueba si los ficheros o directorios que se van a utilizar tienen el mismo UID (propietario) que el script que está siendo ejecutado. Comprueba si el directorio en el que el script está operando tiene el mismo UID (propietario) que el script que está siendo ejecutado. (Ver la opción safe_mode_include_dir de php.ini.

add a note add a note

User Contributed Notes 2 notes

up
1
tschmieder at bitworks dot de
7 years ago
refers to the previuos posting of

bananarama
15-May-2006 10:11

"all file-handling and -management functions are restricted, just in case someones wondering why they're not listed here.
a script can run these functions on files without errors, if the files were created (are owned) by the same UID, the script was created (is owned) by."

.... or if the directory, in which the file is located, has the same UID as the script, which tries to use a file in that directory...
up
0
Jan
8 years ago
It seems that glob and file_exists functions are also restricted in safe-mode.
To Top