Sécurité et "Safe Mode"
Utilisation des lignes de commande
Safe mode
PHP Manual

## 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() | 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() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
filepro() | 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() | 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() | 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() | 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() | 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() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
chdir() | 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() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
mkdir() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
rmdir() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
rename() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
unlink() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
copy() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. 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() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
chown() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
chmod() | 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() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
symlink() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. 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() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. 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() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. 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() | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. 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)
session_start() | Le propriétaire d'un script doit être le même que celui que celui du répertoire session.save_path si le répertoire par défaut session.save_handler est utilisé.
Toutes les fonctions sur les flux et sur le système de fichiers. | Vérifie que le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté. 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.

Sécurité et "Safe Mode"
Utilisation des lignes de commande
Safe mode
PHP Manual