curl_setopt() will not allow you to activate CURLOPT_FOLLOWLOCATION when in safe mode.
Funções restringidas/desabilitadas pelo modo seguro
Essa lista provavelmente ainda está incomplete e possivelmente incorreta das funções limitadas pelo modo seguro.
| Função | Limitações | |
|---|---|---|
| dbmopen() | Verifica se os arquivos ou diretórios que estão sendo operados tem o mesmo UID (proprietário) do script que está sendo executado. | |
| dbase_open() | Verifica se os arquivos ou diretórios que estão sendo operados tem o mesmo UID (proprietário) do script que está sendo executado. | |
| filepro() | Verifica se os arquivos ou diretórios que estão sendo operados tem o mesmo UID (proprietário) do script que está sendo executado. | |
| filepro_rowcount() | Verifica se os arquivos ou diretórios que estão sendo operados tem o mesmo UID (proprietário) do script que está sendo executado. | |
| filepro_retrieve() | Verifica se os arquivos ou diretórios que estão sendo operados tem o mesmo UID (proprietário) do script que está 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 os arquivos ou diretórios que estão sendo operados tem o mesmo UID (proprietário) do script que está sendo executado. | |
| posix_mkfifo() | Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. | |
| putenv() | Obedece as diretivas safe_mode_protected_env_vars e safe_mode_allowed_env_vars. Também veja a documentação on putenv() | |
| move_uploaded_file() | Verifica se os arquivos ou diretórios que estão sendo operados tem o mesmo UID (proprietário) do script que está sendo executado. | |
| chdir() | Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. | |
| dl() | Esta função é desabilitada quando o PHP é executado em safe-mode | |
| operador backtick (``) | Esta função é desabilitada quando o PHP é executado em safe-mode | |
| shell_exec() (função equivalente de backticks) | Esta função é desabilitada quando o PHP é executado em safe-mode | |
| exec() | Você só pode rodar executáveis que estejam no safe_mode_exec_dir. Por razões práticas, não é permitido atualmente ter .. compondo o caminho para o executável. escapeshellcmd() é executada no argumento dessa função. | |
| system() | Você só pode rodar executáveis que estejam no safe_mode_exec_dir. Por razões práticas, não é permitido atualmente ter .. compondo o caminho para o executável. escapeshellcmd() é executada no argumento dessa função. | |
| passthru() | Você só pode rodar executáveis que estejam no safe_mode_exec_dir. Por razões práticas, não é permitido atualmente ter .. compondo o caminho para o executável. escapeshellcmd() é executada no argumento dessa função. | |
| popen() | Você só pode rodar executáveis que estejam no safe_mode_exec_dir. Por razões práticas, não é permitido atualmente ter .. compondo o caminho para o executável. escapeshellcmd() é executada no argumento dessa função. | |
| fopen() | Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. | |
| mkdir() | Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. | |
| rmdir() | Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. | |
| rename() | Verifica se os arquivos ou diretórios que estão sendo operados tem o mesmo UID (proprietário) do script que está sendo executado. Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. | |
| unlink() | Verifica se os arquivos ou diretórios que estão sendo operados tem o mesmo UID (proprietário) do script que está sendo executado. Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. | |
| copy() | Verifica se os arquivos ou diretórios que estão sendo operados tem o mesmo UID (proprietário) do script que está sendo executado. Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. (on source and target) | |
| chgrp() | Verifica se os arquivos ou diretórios que estão sendo operados tem o mesmo UID (proprietário) do script que está sendo executado. | |
| chown() | Verifica se os arquivos ou diretórios que estão sendo operados tem o mesmo UID (proprietário) do script que está sendo executado. | |
| chmod() | Verifica se os arquivos ou diretórios que estão sendo operados tem o mesmo UID (proprietário) do script que está sendo executado. Além disso, você não pode editar os bits SUID, SGID e sticky | |
| touch() | Verifica se os arquivos ou diretórios que estão sendo operados tem o mesmo UID (proprietário) do script que está sendo executado. Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. | |
| symlink() | Verifica se os arquivos ou diretórios que estão sendo operados tem o mesmo UID (proprietário) do script que está sendo executado. Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. (nota: apenas o alvo é checado) | |
| link() | Verifica se os arquivos ou diretórios que estão sendo operados tem o mesmo UID (proprietário) do script que está sendo executado. Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. (nota: apenas o alvo é checado) | |
| apache_request_headers() | No modo seguro, cabeçalhos começando com 'authorization' (não diferenciando maiúsculas e minúsculas) não serão retornados. | |
| header() | No modo seguro, o uid do script é adicionado a parte realm do cabeçalho WWW-Authenticate se você configurar esse cabeçalho (usado para Autenticação HTTP). | |
| variáveis PHP_AUTH | No modo seguro, as variáveis PHP_AUTH_USER, PHP_AUTH_PW, e AUTH_TYPE não estão disponíveis no array $_SERVER. Apesar de tudo, você ainda pode usar REMOTE_USER para o USER. (nota: só afetado desde o PHP 4.3.0) | |
| highlight_file(), show_source() | Verifica se os arquivos ou diretórios que estão sendo operados tem o mesmo UID (proprietário) do script que está sendo executado. Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. (nota: só afetado desde o PHP 4.2.1) | |
| parse_ini_file() | Verifica se os arquivos ou diretórios que estão sendo operados tem o mesmo UID (proprietário) do script que está sendo executado. Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. (nota: só afetado desde o PHP 4.2.1) | |
| set_time_limit() | Não tem efeito quando o PHP é executado em safe mode. | |
| max_execution_time | Não tem efeito quando o PHP é executado em safe mode. | |
| mail() | Em modo seguro, o quinto parâmetro é desabilitado. (nota: só afetado desde o PHP 4.2.3) | |
| Todos filesystem e funções de stream. | Verifica se os arquivos ou diretórios que estão sendo operados tem o mesmo UID (proprietário) do script que está sendo executado. Verifica se o diretório que será afetado por esta operação tem o mesmo UID (proprietário) do script que está sendo executado. (veja a opção safe_mode_include_dir php.ini. | ?? |
Stephen Dewey
13-Jul-2009 12:39
tschmieder at bitworks dot de
22-Sep-2007 06:04
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...
bananarama
15-May-2006 01: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.
example:
you upload a script, it is owned by UID 720. you upload a picture, it is owned by UID 720. the script creates a thumbnail of the picture. the thumb is owned by UID 30 (the server/apache). this makes it impossible (?) to run a gallery script, which checks for newly uploaded pictures in order to create and display thumbs of them if you want to check, if a thumbnail already exists. the script would be owned by UID 720, the thumb by UID 30.
you could upload a script which creates a file (e.g. from a text file) with .php ending. this script would be owned by UID 30 and could access the thumbs, but it couldnt read the upload pictures.
<?
$data = fread(fopen("test.txt", "r"), filesize("test.txt"));
$file = "test.php";
if (!$file_handle = fopen($file,"a")) { echo "Cannot open file"; }
if (!fwrite($file_handle, $data)) { echo "Cannot write to file"; }
fclose($file_handle);
chmod("test.php", 0777);
?>
zauker
21-Mar-2006 02:57
The SAFE_MODE handling of glob() needs a checkup for security reasons.
In short - always with SAFE_MODE on:
1) glob() can still fetch all filenames in a directory not owned by the
same UID as the user, if just the first file in the directory (or more
specific, the glob-pattern) happens to be owned by the same user as the
PHP-script.
2a) No warning is raised if glob is used on another owner's directory
and there is no match.
2b) In those cases where SAFE_MODE correctly prohibits glob() from
fetching a list of files, the warning still discloses the first
filename.
Solution: glob() in SAFE_MODE should be restricted in the same way as
opendir() is
see the link http://bugs.php.net/bug.php?id=28932
Jan
23-Oct-2005 02:46
It seems that glob and file_exists functions are also restricted in safe-mode.
