PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Utiliser PHP en ligne de commande> <Safe mode
Last updated: Fri, 10 Oct 2008

view this page in

Fonctions désactivées par le Safe Mode

Voici une liste non-exhaustive des fonctions désactivées par le Safe Mode.

Fonctions désactivées par le Safe Mode
Fonction Limitations
dbmopen()

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

dbase_open()

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

filepro()

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

filepro_rowcount()

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

filepro_retrieve()

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Fonctions ifx_* restrictions sql_safe_mode, (!= Safe Mode)
Fonctions ingres_* restrictions sql_safe_mode, (!= Safe Mode)
Fonctions mysql_* restrictions sql_safe_mode, (!= Safe Mode)
pg_lo_import()

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

posix_mkfifo()

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

putenv() Obéit aux directives safe_mode_protected_env_vars et safe_mode_allowed_env_vars. Voir aussi la documentation de putenv()
move_uploaded_file()

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

chdir()

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

dl() Cette fonction est désactivée par le safe-mode
opérateur guillemets obliques Cette fonction est désactivée par le safe-mode
shell_exec() (équivalent fonctionnel des guillemets obliques) Cette fonction est désactivée par le safe-mode
exec() Vous ne pouvez exécuter que les programmes qui sont dans le dossier safe_mode_exec_dir. Pour des raisons pratiques, il n'est pas possible d'utiliser des jokers comme .. dans le chemin de ce dossier. escapeshellcmd() est exécuté sur les arguments de cette fonction.
system() Vous ne pouvez exécuter que les programmes qui sont dans le dossier safe_mode_exec_dir. Pour des raisons pratiques, il n'est pas possible d'utiliser des jokers comme .. dans le chemin de ce dossier. escapeshellcmd() est exécuté sur les arguments de cette fonction.
passthru() Vous ne pouvez exécuter que les programmes qui sont dans le dossier safe_mode_exec_dir. Pour des raisons pratiques, il n'est pas possible d'utiliser des jokers comme .. dans le chemin de ce dossier. escapeshellcmd() est exécuté sur les arguments de cette fonction.
popen() Vous ne pouvez exécuter que les programmes qui sont dans le dossier safe_mode_exec_dir. Pour des raisons pratiques, il n'est pas possible d'utiliser des jokers comme .. dans le chemin de ce dossier. escapeshellcmd() est exécuté sur les arguments de cette fonction.
fopen()

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

mkdir()

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

rmdir()

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

rename()

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

unlink()

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

copy()

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

(sur source et target )
chgrp()

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

chown()

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

chmod()

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

De plus, vous ne pouvez pas modifier les SUID, SGID et le bit sticky
touch()

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

symlink()

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

(note : seule l'hôte cible est vérifié)
link()

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

(note : seul le fichier de destination est vérifié.)
apache_request_headers() En Safe Mode, les en-têtes commençant par authorization (sensible à la casse) ne seront pas retournés.
header() Avec le safe mode, le uid du script est ajouté à la partie realm de l'en-tête WWW-Authenticate si vous utilisez cet en-tête pour l'identification.
variables PHP_AUTH Avec le safe mode, les variables PHP_AUTH_USER, PHP_AUTH_PW et PHP_AUTH_TYPE ne sont pas disponibles dans la variable $_SERVER. Indépendamment, vous pouvez utiliser la variable REMOTE_USER pour connaître l'utilisateur. (note : affectée uniquement depuis PHP 4.3.0)
highlight_file(), show_source()

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

(note : affectée uniquement depuis PHP 4.2.1)
parse_ini_file()

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

(note : affectée uniquement depuis PHP 4.2.1)
set_time_limit() N'a aucun effet lorsque PHP fonctionne avec le safe mode.
max_execution_time N'a aucun effet lorsque PHP fonctionne avec le safe mode.
mail() Si le Safe Mode est actif, le 5ème paramètre est désactivé (note : uniquement affecté depuis PHP 4.2.3)
Toutes les fonctions sur les flux et sur le système de fichiers.

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

Note: Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.

(Voir l'option safe_mode_include_dir du php.ini.



Utiliser PHP en ligne de commande> <Safe mode
Last updated: Fri, 10 Oct 2008
 
add a note add a note User Contributed Notes
Fonctions désactivées par le Safe Mode
tschmieder at bitworks dot de
22-Sep-2007 03: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 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.

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 11: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 11:46
It seems that glob and file_exists functions are also restricted in safe-mode.
lionel at mamane dot lu
31-Mar-2005 03:05
readfile() is probably also limited by safe mode

Utiliser PHP en ligne de commande> <Safe mode
Last updated: Fri, 10 Oct 2008
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites