dams Tue Jan 16 02:37:25 2001 EDT Modified files: /phpdoc/fr/chapters security.xml intro.xml Log: New Year's Update. Index: phpdoc/fr/chapters/security.xml diff -u phpdoc/fr/chapters/security.xml:1.9 phpdoc/fr/chapters/security.xml:1.10 --- phpdoc/fr/chapters/security.xml:1.9 Thu Jan 11 00:55:35 2001 +++ phpdoc/fr/chapters/security.xml Tue Jan 16 02:37:24 2001 @@ -264,6 +264,22 @@ </para> </sect2> </sect1> + <sect1 id="security.current"> + <title>Etre à jour</title> + <simpara> + PHP, comme de nombreux systèmes de grandes tailles, est constamment + testé et amélioré. Chaque nouvelle version rassemble des modifications + majeures et mineurs, aussi bien pour renforcer la sécurité, réparer + les problèmes de conceptions de configuration, et d'autres points + qui peuvent affecter la sécurité globale et la stabilité de votre + système. + </simpara> + <simpara> + Comme les autres langages de scripts systèmes, la meilleure approche est + de mettre à jour souvent PHP, et de rester à l'écoute des dernières + versions et des modifications qu'elles apportent. + </simpara> + </sect1> <sect1 id="security.apache"> <title>Module Apache</title> <simpara> @@ -384,9 +400,11 @@ <programlisting role="php"> <?php // Efface un fichier sur le disque où l'utilisateur à le droit -$username = $HTTP_REMOTE_USER; // utilise un mécanisme d'authentification +$username = get_env("REMOTE_USER"); +// utilise un mécanisme d'authentification $homedir = "/home/$username"; -$file_to_delete = basename("$userfile"); // supprime le chemin excédentaire +$file_to_delete = basename("$userfile"); +// supprime le chemin excédentaire unlink ($homedir/$file_to_delete); $fp = fopen("/home/logging/filedelete.log","+a"); //note l'effacement $logstring = "$HTTP_REMOTE_USER $homedir $file_to_delete"; @@ -431,27 +449,35 @@ scripts, car elles donnent de précieux renseignements tels que quelle fonction a échoué, quel fichier n'a pas été trouvé, quel script PHP a buggé, et quelle ligne est en faute. Toutes - ces informations sont exploitables. + ces informations sont exploitables. Il est commun aux développeurs PHP + d'utiliser les fonctions <function>show_source</function>, + <function>highlight_string</function>, ou <function>highlight_file</function> + comme outils de débuggage, mais sur un site en production, cela expose + des variables cachées, des syntaxes non vérifiées ou d'autres informations + dangeureuses. </simpara> <simpara> Par exemple, le style d'erreur indique sur quel système PHP fonctionne. - Si un pirate affichait une page .html, et essaye de la tester (pour + Si un pirate affiche une page <acronym>html</acronym>, et essaye de la tester +(pour rechercher des faiblesses du système), il peut déterminer sur quel système PHP a été compilé. </simpara> <simpara> Une erreur de fonction indique si un système supporte une base de - données spécifique, ou bien indique comment la page a été générée. - Cela peut orienter l'intrus vers les ports de cette base de données - ou bien vers une attaque liée à cette application. En envoyant des - données érronées, par exemple, un pirate peut determiner l'ordre + données spécifique, ou bien indique comment la page a + été générée. Cela peut orienter l'intrus + vers les ports de cette base de données ou bien vers une attaque + liée à cette application. En envoyant des données + érronées, par exemple, un pirate peut determiner l'ordre d'authentification dans un script (à partir des lignes d'erreurs), et essayer de les exploiter ailleurs, dans le script. </simpara> <simpara> Une erreur de fichier, ou une erreur générale PHP peut indiquer quelles sont les permissions du serveur web, ainsi que la structure - et l'organisation des fichiers. + et l'organisation des fichiers. Les gestionnaires d'erreurs utilisateurs + peuvent aussi aggraver ce problème, en permettant l'exploitation facile + d'informations préalablement cachées. </simpara> <simpara> Il y a trois solutions majeures à ces problèmes : la première est Index: phpdoc/fr/chapters/intro.xml diff -u phpdoc/fr/chapters/intro.xml:1.8 phpdoc/fr/chapters/intro.xml:1.9 --- phpdoc/fr/chapters/intro.xml:1.8 Thu Jan 11 00:55:35 2001 +++ phpdoc/fr/chapters/intro.xml Tue Jan 16 02:37:24 2001 @@ -129,22 +129,26 @@ estime que PHP/FI est utilisé sur 15 000 sites web dans le monde entier, fin 1996. Ce chiffre atteint 50 000 durant l'été 1997. L'été 1997 voit aussi un profond changement dans le - développemnt du PHP: d'un projet personnel (celui de Ramsus),* + développemnt du PHP: d'un projet personnel (celui de Ramsus), on passe alors à une projet d'équipe. L'analyseur fut de nouveau réécrit par Zeev Suraski et Andi Gutmans et ce nouvel analyseur forma la base de la version 3 du PHP. Une grande partie du code de PHP/FI fut complètement réécrit alors que l'autre partie - fut portée pour donner le PHP Version 3. + fut portée pour donner le PHP Version 3. La dernière version de PHP + (PHP 4) utilise le moteur d'analyse <ulink url="&url.zend;">Zend</ulink> + pour atteindre de nouveaux niveaux de performance, et supporter + un nombre encore plus grand de librairies et extensions. Il tourne + de manière native sur tous les serveurs web les plus répandus. </simpara> <simpara> - Aujourd'hui (été 1999) PHP/FI ou PHP 3 sont distribués + Aujourd'hui (Janvier 2001) PHP 3 ou PHP 4 sont distribués avec de nombreux produits commerciaux comme "C2's StrongHold web server" et "RedHat Linux" et il est admis (d'après les chiffres de <ulink url="&url.netcraft;">NetCraft</ulink>, et leurs <ulink url="&url.netcraft-survey;">statistiques Netcraft Web Server Survey</ulink>) - que le PHP est utilisé sur 150 000 sites web dans le monde entier. Pour - comparaison, ce chiffre est supérieur au nombre de serveur tournant sous - Netscape Enterprise server. + que le PHP est utilisé sur 5 100 000 sites web dans le monde entier. +Pour + comparaison, ce chiffre est légèrement supérieur au nombre de serveurs + tournant sous Microsoft Information server (IIS) : 5.03 millions. </simpara> <!-- <figure>