PHP Velho Oeste 2024

Funções restritas/desabilitadas pelo "safe mode"

Esta continua sendo uma lista provavelmente incompleta e possivelmente incorreta de funcões limitadas pelo "safe mode".

Funcões limitadas do safe mode
Funções Limitações
dbmopen() Verifica se o arquivo ou diretório operados tem o mesmo UID (owner) que o script sendo executado.
dbase_open() Verifica se o arquivo ou diretório operados tem o mesmo UID (owner) que o script sendo executado.
filepro() Verifica se o arquivo ou diretório operados tem o mesmo UID (owner) que o script sendo executado.
filepro_rowcount() Verifica se o arquivo ou diretório operados tem o mesmo UID (owner) que o script sendo executado.
filepro_retrieve() Verifica se o arquivo ou diretório operados tem o mesmo UID (owner) que o script sendo executado.
ifx_* sql_safe_mode restrictions, (!= safe mode)
ingres_* sql_safe_mode restrictions, (!= safe mode)
mysql_* sql_safe_mode restrictions, (!= safe mode)
pg_lo_import() Verifica se o arquivo ou diretório operados tem o mesmo UID (owner) que o script sendo executado.
posix_mkfifo() Verifica se o diretório onde o script está operando tem o mesmo UID (owner) que o script sendo executado.
putenv() Obedece as diretivas-ini safe_mode_protected_env_vars e safe_mode_allowed_env_vars. Veja também a documentação de putenv()
move_uploaded_file() Verifica se o arquivo ou diretório operados tem o mesmo UID (owner) que o script sendo executado.
chdir() Verifica se o diretório onde o script está operando tem o mesmo UID (owner) que o script sendo executado.
dl() Está função está desabilitada quando o PHP é rodado sob o safe mode.
backtick operator Está função está desabilitada quando o PHP é rodado sob o safe mode.
shell_exec() (função equivalente ao backticks) Está função está desabilitada quando o PHP é rodado sob o safe mode.
exec() Poderá somente utilizar executáveis dentro do safe_mode_exec_dir. Por razões práticas, não é permitido possuir componentes .. no endereço do executável. escapeshellcmd() é executado como argumento desta função.
system() Poderá somente utilizar executáveis dentro do safe_mode_exec_dir. Por razões práticas, não é permitido possuir componentes .. no endereço do executável. escapeshellcmd() é executado como argumento desta função.
passthru() Poderá somente utilizar executáveis dentro do safe_mode_exec_dir. Por razões práticas, não é permitido possuir componentes .. no endereço do executável. escapeshellcmd() é executado como argumento desta função.
popen() Poderá somente utilizar executáveis dentro do safe_mode_exec_dir. Por razões práticas, não é permitido possuir componentes .. no endereço do executável. escapeshellcmd() é executado como argumento desta função.
fopen() Verifica se o diretório onde o script está operando tem o mesmo UID (owner) que o script sendo executado.
mkdir() Verifica se o diretório onde o script está operando tem o mesmo UID (owner) que o script sendo executado.
rmdir() Verifica se o diretório onde o script está operando tem o mesmo UID (owner) que o script sendo executado.
rename() Verifica se o arquivo ou diretório operados tem o mesmo UID (owner) que o script sendo executado. Verifica se o diretório onde o script está operando tem o mesmo UID (owner) que o script sendo executado.
unlink() Verifica se o arquivo ou diretório operados tem o mesmo UID (owner) que o script sendo executado. Verifica se o diretório onde o script está operando tem o mesmo UID (owner) que o script sendo executado.
copy() Verifica se o arquivo ou diretório operados tem o mesmo UID (owner) que o script sendo executado. Verifica se o diretório onde o script está operando tem o mesmo UID (owner) que o script sendo executado. (on source and target)
chgrp() Verifica se o arquivo ou diretório operados tem o mesmo UID (owner) que o script sendo executado.
chown() Verifica se o arquivo ou diretório operados tem o mesmo UID (owner) que o script sendo executado.
chmod() Verifica se o arquivo ou diretório operados tem o mesmo UID (owner) que o script sendo executado. Além disso, não poderá alterar nem o SUID, nem o SGID, nem os sticky bits
touch() Verifica se o arquivo ou diretório operados tem o mesmo UID (owner) que o script sendo executado. Verifica se o diretório onde o script está operando tem o mesmo UID (owner) que o script sendo executado.
symlink() Verifica se o arquivo ou diretório operados tem o mesmo UID (owner) que o script sendo executado. Verifica se o diretório onde o script está operando tem o mesmo UID (owner) que o script sendo executado. (nota: somente o alvo é verificado)
link() Verifica se o arquivo ou diretório operados tem o mesmo UID (owner) que o script sendo executado. Verifica se o diretório onde o script está operando tem o mesmo UID (owner) que o script sendo executado. (nota: somente o alvo é verificado)
apache_request_headers() No "safe mode" o cabeçalho authorization (case-insensitive) não é retornado.
header() No "safe mode", o uid do script é adicionado ao realm que faz parte do cabeçalho WWW-Authenticate se você definir esse cabeçalho (usado para autenticação HTTP).
PHP_AUTH variables No "safe mode", as variáveis PHP_AUTH_USER, PHP_AUTH_PW e AUTH_TYPE não estão disponíveis em $_SERVER. Porém, pode-se utilizar o REMOTE_USER para o USER. (nota: apenas para a versão a partir PHP 4.3.0)
highlight_file(), show_source() Verifica se o arquivo ou diretório operados tem o mesmo UID (owner) que o script sendo executado. Verifica se o diretório onde o script está operando tem o mesmo UID (owner) que o script sendo executado.
parse_ini_file() Verifica se o arquivo ou diretório operados tem o mesmo UID (owner) que o script sendo executado. Verifica se o diretório onde o script está operando tem o mesmo UID (owner) que o script sendo executado.
set_time_limit() Não há efeito quando o safe mode está ativado.
max_execution_time Não há efeito quando o safe mode está ativado.
mail() No safe mode, o quinto parâmetro é desabilitado.
session_start() O dono do script precisa ser o mesmo dono do diretório session.save_path se se o files padrão em session.save_handler for usado.
Todos as funções do sistemas de arquivos e de streams. Verifica se o arquivo ou diretório operados tem o mesmo UID (owner) que o script sendo executado. Verifica se o diretório onde o script está operando tem o mesmo UID (owner) que o script sendo executado. (veja a opção safe_mode_include_dir no php.ini

add a note add a note

User Contributed Notes 2 notes

up
5
Jan
18 years ago
It seems that glob and file_exists functions are also restricted in safe-mode.
up
3
tschmieder at bitworks dot de
16 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...
To Top