dams Wed Jul 11 05:16:05 2001 EDT
Added files:
/phpdoc/fr/features safe-mode.xml
Log:
Added safe-mode.
Index: phpdoc/fr/features/safe-mode.xml
+++ phpdoc/fr/features/safe-mode.xml
<chapter id="features.safe-mode">
<title>Safe mode</title>
<para>
Le "Safe Mode" est le mode de sécurité de PHP : une solution au
problème
de partage de PHP sur un serveur. Ce système pêche au niveau de
l'architecture
car il n'est pas correct de tenter de résoudre ce problème au niveau
de PHP, mais les solutions alternatives basées sur le serveur web et l'OS
ne sont pas réalistes. De nombreux acteurs, notamment les fournisseurs
d'hébergement, utilise le "Safe Mode".
</para>
<para>
Les directives de configuration qui contrôlent le safe mode sont :
<programlisting role="ini">
safe_mode = Off
open_basedir =
safe_mode_exec_dir =
safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH
disable_functions =
</programlisting>
</para>
<para>
Lore que safe mod est actif, PHP vérifie que le propriétaire du script
courant est le même que le propriétaire de fichier qui seront
manipulé
par ce script. Par exemple, si on a la situation suivante :
<programlisting role="ls">
-rw-rw-r-- 1 rasmus rasmus 33 Jul 1 19:20 script.php
-rw-r--r-- 1 root root 1116 May 26 18:01 /etc/passwd
</programlisting>
Exécuter le script <filename>script.php</filename>
<programlisting role="php">
<?php
readfile('/etc/passwd');
?>
</programlisting>
générera cette erreur, si le safe mode est activé :
<programlisting role="php">
Warning: SAFE MODE Restriction in effect. The script whose uid is 500 is not
allowed to access /etc/passwd owned by uid 0 in /docroot/script.php on line 2
</programlisting>
</para>
<para>
Si vou utilisez la directive open_basedir au lieu du safe mode, alors les
manipulations seront limitées aux fichiers situés dans les dossiers
spécifiés. Par exemple :
<programlisting role="ini">
<Directory /docroot>
php_admin_value open_basedir /docroot
</Directory>
</programlisting>
Si vous exécutez le script <filename>script.php</filename> ci-dessus avec
la configuration d'open_basedir le résultat sera l'affichage suivant :
<programlisting role="php">
Warning: open_basedir restriction in effect. File is in wrong directory in
/docroot/script.php on line 2
</programlisting>
</para>
<para>
Vous pouvez aussi désactiver individuellement les fonctions. Par exemple,
en ajoutant cette ligne dans le fichier <filename>php.ini</filename> :
<programlisting role="ini">
disable_functions readfile,system
</programlisting>
toute utilisation des fonctions <function>readfile<function> et
<function>system<function> générera l'affichage suivant :
<programlisting role="php">
Warning: readfile() has been disabled for security reasons in
/docroot/script.php on line 2
</programlisting>
</para>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->