Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
php [2019/02/02 06:20]
127.0.0.1 modification externe
php [2023/10/19 19:48] (Version actuelle)
Elodie [Liste des branches PHP]
Ligne 22: Ligne 22:
 https://phpinfo.franceserv.fr/ https://phpinfo.franceserv.fr/
  
-FranceServ Hébergement propose à ses hébergés le choix +FranceServ Hébergement propose à ses hébergés le choix entre les branches PHP 5.6, 7.0, 7.1, 7.27.3, 7.4, 8.0 et 8.1 dans leurs dernières versions respectives. 
-entre les branches PHP 5.6, 7.0, 7.1, 7.2 et 7.3 dans leurs dernières versions respectives. +
  
-Il est possible de choisir la version de la branche du moteur de PHP pour chacun de ses sites internet à l'aide du gestionnaire de son site directement dans son interface de gestion. +Il est possible de choisir la version de la branche du moteur de PHP pour chacun de ses sites internet à l'aide du gestionnaire de son site directement dans son gestionnaire client.
- +
-Avec le connecteur suPHP (et non pas PHP-FPM qui est utilisé par défaut), il est également possible de définir cette version directement à l'aide du fichier .htaccess pour disposer différentes versions PHP sur un même site Internet : +
- +
-^Branche du moteur PHP^ Directive .htaccess ^ +
-|PHP 7.3.x | SetEnv PHP_VER 7_3| +
-|PHP 7.2.x | SetEnv PHP_VER 7_2| +
-|PHP 7.1.x (par défaut) | SetEnv PHP_VER 7_1| +
-|PHP 7.0.x | SetEnv PHP_VER 7_0| +
-|PHP 5.6.x | SetEnv PHP_VER 5_6|+
 ===== Afficher/masquer les erreurs PHP ===== ===== Afficher/masquer les erreurs PHP =====
  
Ligne 42: Ligne 32:
  
 Si vous avez une erreur de développement PHP ou .htaccess, vous avez 2 moyens pour les analyser. Mais avant tout, il vous faut maintenir à jour la ou les solutions Web que vous utilisez afin de suivre les mises à jours. Si vous avez une erreur de développement PHP ou .htaccess, vous avez 2 moyens pour les analyser. Mais avant tout, il vous faut maintenir à jour la ou les solutions Web que vous utilisez afin de suivre les mises à jours.
-==== Via le journal d'erreur en temps réel du Superviseur FSH : ==== 
- 
-Documentation du superviseur : https://www.franceserv.fr/wiki/superviseur 
- 
-Le superviseur permet d'identifier les alertes et erreurs PHP ainsi que les erreurs .htaccess 
  
 ==== Manuellement : ==== ==== Manuellement : ====
Ligne 128: Ligne 113:
 L'upload de fichiers via PHP est activé de base et la taille maximale d'un fichier pouvant être envoyé via PHP est de 32 Mo par défaut. Cette limite peut être rehaussée jusqu'à 400 Mo via le PHP personnalisé ".php.ini" à la racine de son site à l'aide des directives upload_max_filesize et post_max_size, par exemple ainsi : L'upload de fichiers via PHP est activé de base et la taille maximale d'un fichier pouvant être envoyé via PHP est de 32 Mo par défaut. Cette limite peut être rehaussée jusqu'à 400 Mo via le PHP personnalisé ".php.ini" à la racine de son site à l'aide des directives upload_max_filesize et post_max_size, par exemple ainsi :
  
-<code php .php.ini>+<code php .user.ini>
 upload_max_filesize = 400M upload_max_filesize = 400M
 post_max_size = 400M post_max_size = 400M
Ligne 135: Ligne 120:
 La principale source de piratage et de destruction d'un site Internet provient d'un formulaire d'envoi de fichiers non sécurisé. La principale source de piratage et de destruction d'un site Internet provient d'un formulaire d'envoi de fichiers non sécurisé.
  
-Pour des raisons de sécurité, il faut veiller à ce qu'un script PHP ne puisse pas envoyer de fichier PHP car un internaute pourrai utiliser le formulaire d'envoi pour prendre le contrôle total de votre site.+Pour des raisons de sécurité, il faut veiller à ce qu'un script PHP ne puisse pas envoyer de fichier PHPcar un internaute pourrait utiliser le formulaire d'envoi pour prendre le contrôle total de votre site.
  
-C'est pour cette raison qu'il faut dans un premier temps, bloquer l’exécution de PHP éventuel dans le répertoire où sont envoyés les fichiers via PHP.+C'est pour cette raison qu'il fautdans un premier temps, bloquer l’exécution de PHP éventuel dans le répertoire où sont envoyés les fichiers via PHP.
  
 Soit en plaçant un fichier .htaccess dans le répertoire des envois : Soit en plaçant un fichier .htaccess dans le répertoire des envois :
Ligne 148: Ligne 133:
 </code> </code>
  
-Ou directement à la racine de votre site ce qui est plus sécurisé :+Ou directement à la racine de votre sitece qui est plus sécurisé :
  
 <code> <code>
-<Directory /home/httpd/d/e/m/demo/demo.franceserv.com/upload>+<Directory /home/web/example/www.example.com/upload>
     <Files ^(*.php|*.phps)>     <Files ^(*.php|*.phps)>
         order deny,allow         order deny,allow
Ligne 183: Ligne 168:
   if((!empty($_FILES["uploaded_file"])) && ($_FILES['uploaded_file']['error'] == 0))   if((!empty($_FILES["uploaded_file"])) && ($_FILES['uploaded_file']['error'] == 0))
     {     {
-    // On pourrai récupérer le type mime du fichier envoyé mais un pirate peut+    // On pourrait récupérer le type mime du fichier envoyé mais un pirate peut
     // toujours modifier cette information en HTML. Dans la mesure où l'on     // toujours modifier cette information en HTML. Dans la mesure où l'on
     // n'accepte que des images dans cet exemple, on va utiliser une fonction     // n'accepte que des images dans cet exemple, on va utiliser une fonction
Ligne 190: Ligne 175:
     // temporaire du serveur, il n'est alors plus possible de modifier les     // temporaire du serveur, il n'est alors plus possible de modifier les
     // propriétés du fichier pour tromper la mémoire interne.     // propriétés du fichier pour tromper la mémoire interne.
-    $upload_internal = getimagesize($_FILES['uploaded_file']['tmp_name']);+    // PS. L'équipe de développement de PHP indique qu'il ne faut pas utiliser 
 +    // la fonction getimagesize() mais préférer la fonction finfo_open() pour 
 +    // vérifier un envoi d'image : 
 +    // $upload_internal = getimagesize($_FILES['uploaded_file']['tmp_name']); 
 +    // Il est possible d'effectuer de la stéganographie et de tromper la fonction 
 +    // getimagesize(), alors on procède ainsi : 
 +    $upload_internal = false; 
 +    $finfo = finfo_open(FILEINFO_MIME_TYPE); 
 +    $mimetype = finfo_file($finfo, $_FILES['uploaded_file']['tmp_name']); 
 +    if ($mimetype == 'image/jpg' || $mimetype == 'image/jpeg' || $mimetype == 'image/gif' || $mimetype == 'image/png'
 +      { 
 +      $upload_internal = true; 
 +      }
  
     // On récupère l'extension du fichier envoyé     // On récupère l'extension du fichier envoyé
Ligne 198: Ligne 195:
     // On vérifie que :     // On vérifie que :
     // 1) le fichier interne est une image,     // 1) le fichier interne est une image,
-    // 2) le type mime correspond à une image, +    // 2) le poid du fichier est inférieur à 350 Ko 
-    // 3) l'extension du fichier est permise, +    if ( ($upload_internal) && ($_FILES["uploaded_file"]["size"] < 350000))
-    // 4) le poid du fichier est inférieur à 350 Ko +
-    if ( ($upload_internal) && (substr($upload_internal['mime'], 0, 6) == 'image/') && ($ext == "jpg" | $ext == "jpeg" | $ext == "png") && ($_FILES["uploaded_file"]["size"] < 350000))+
       {       {
       // On détermine où sauvegarder le fichier final       // On détermine où sauvegarder le fichier final
Ligne 228: Ligne 223:
 </code> </code>
  
-Ce script PHP d'upload d'image est sécurisé car il ne fait pas confiance au navigateur+Ce script PHP d'upload d'image est sécurisécar il ne fait pas confiance au navigateur.
- +
-Le script PHP vérifie alors la taille de la soit disant image au moment où le fichier se trouve dans la zone temporaire d'upload avec la fonction PHP getimagesize(). Si la taille de l'image retournée est 0, ce n'est alors pas une image valide, mais très certainement un script PHP qui se fait passer pour une image en modifiant le type mime de son format à l'intérieur de son propre contenu.+
 ===== Envoyer des emails ===== ===== Envoyer des emails =====
  
 La fonction mail() de PHP est activée par défaut. Pour en savoir plus sur son utilisation, merci de consulter le lien suivant : La fonction mail() de PHP est activée par défaut. Pour en savoir plus sur son utilisation, merci de consulter le lien suivant :
  
-https://www.franceserv.fr/wiki/mail#envoyer_un_mail_depuis_son_site_avec_php+[[mail#envoyer_un_mail_depuis_son_site_avec_php|Envoyer un mail depuis son site avec PHP]]
  
 Pour information, la fonction mail renvoie TRUE en cas de succès et FALSE si le mail a été bloqué avant son envoi. Pour information, la fonction mail renvoie TRUE en cas de succès et FALSE si le mail a été bloqué avant son envoi.
  
 Soyez conscient qu'un individu malveillant peut profiter des formulaires de contact pour vous envoyer du spam. En l'appelant plusieurs fois par seconde, il va finir par saturer l'adresse mail que vous avez indiqué. L'ajout d'une procédure de type captcha peut vous aider à éviter ce genre de piratage, et donc vous éviter la suspension ou l'annulation temporaire ou non de votre service mail ou de votre compte. Soyez conscient qu'un individu malveillant peut profiter des formulaires de contact pour vous envoyer du spam. En l'appelant plusieurs fois par seconde, il va finir par saturer l'adresse mail que vous avez indiqué. L'ajout d'une procédure de type captcha peut vous aider à éviter ce genre de piratage, et donc vous éviter la suspension ou l'annulation temporaire ou non de votre service mail ou de votre compte.
- 
 ===== Créer un formulaire de contact (form2mail) ===== ===== Créer un formulaire de contact (form2mail) =====
  
Ligne 320: Ligne 312:
  
 car en affichant uniquement un echo, le visiteur peut actualiser sa page à l'aide de la touche F5 pour envoyer le mail le nombre de fois qu'il actualise et flooder votre boite mail de contact. car en affichant uniquement un echo, le visiteur peut actualiser sa page à l'aide de la touche F5 pour envoyer le mail le nombre de fois qu'il actualise et flooder votre boite mail de contact.
-===== chown ===== 
  
-La modifications du propriétaire des fichiers est prohibé, les fichiers uploadés via PHP et/ou via FTP ont déjà votre utilisateur. 
  
 ===== system / exec / popen ===== ===== system / exec / popen =====
  
-L'exécution de programme binairesd'exécutables ou de cgi est prohibé pour des raisons de sécurité.+Les fonctions PHP systèmes sont possibles chez FranceServ Hébergementmais elles sont désactivées par défaut pour rendre vos sites indépendants et les cloisonnés pour encore plus de sécurité.
  
 +Vous pouvez néanmoins autoriser vos sites à accéder à l’ensemble de votre espace d’hébergement sans aucune limitation et autoriser les fonctions systèmes PHP. Pour ce faire, rendez-vous dans la liste de vos sites https://www.franceserv.fr/gestion/site puis via l'icône de la roue dentée (configuration).
 ===== ASP/CGI ===== ===== ASP/CGI =====
  
Ligne 334: Ligne 325:
 ===== Liste des branches PHP ===== ===== Liste des branches PHP =====
  
-| Branche | Fin de vie | Disponibilité Stabilité +FranceServ hébergement vous propose différentes branches du moteur PHP dans leurs dernières versions. Il est fortement recommandé de toujours utiliser la branche PHP la plus récente stable afin de bénéficier d'une plus grande sécurité, stabilité et rapidité d'exécution pour votre site Internet. 
-7.6 Dec 2021 oui oui + 
-7.31 Dec 2020 oui oui +Pour changer la branche PHP de votre site chez FSH, il vous suffit de vous rendre dans la liste de vos sites via votre gestionnaire client (https://www.franceserv.fr/gestion/site) et de cliquer sur la branche PHP correspondante au site Internet concerné. Vous pourrez alors choisir une autre branche PHP pour votre site Internet puis valider vos modifications. 
-7.1 Dec 2019 oui oui + 
-| 7.3 Dec 2018 oui non +Attention, sachez qu’il ne suffit pas de changer la branche PHP pour que votre site soit à jour, il vous faut préalablement le mettre à jour (voir la documentation de la solution Web que vous utilisez) avant de changer sa branche PHP. Sans quoi, il se pourrait qu'il ne fonctionne plus correctement sur cette nouvelle branche avec des erreurs HTTP 500 par exemple, car votre site Internet ne serait pas compatible. 
-5.31 Dec 2018 oui non + 
-5.10 Jul 2016 non non +Vous pouvez cependant tester que votre site fonctionne correctement sur cette branche PHP et si ce n’est pas le cas, revenir à la branche précédente, mettre à jour votre site Internet avant de réessayer à nouveau de changer de branche PHP pour votre site Internet. 
-5.3 Sep 2015 non non + 
-5.14 Aug 2014 non non +Voici un rappel des branches PHP disponibles : 
-4.7 Aug 2008 non non |+ 
 + Branche   Fin de vie   Disponible   Stable  
 + 8.2  08/12/2025  {{icon>check?24&pack=fa}}   {{icon>check?24&pack=fa}}  
 + 8.1  25/11/2024  {{icon>check?24&pack=fa}}   {{icon>check?24&pack=fa}}  
 + 8.0  21/11/2023  {{icon>check?24&pack=fa}}   {{icon>ban?24&pack=fa}}  
 + 7.4  28/11/2022  {{icon>check?24&pack=fa}}   {{icon>ban?24&pack=fa}}  
 + 7.3  06/12/2021  {{icon>check?24&pack=fa}}   {{icon>ban?24&pack=fa}}  
 + 7.2  31/12/2020  {{icon>check?24&pack=fa}}   {{icon>ban?24&pack=fa}}  
 + 7.1  01/12/2019  {{icon>check?24&pack=fa}}   {{icon>ban?24&pack=fa}}  
 + 7.0  03/12/2018  {{icon>check?24&pack=fa}}   {{icon>ban?24&pack=fa}}  
 + 5.6  31/12/2018  {{icon>check?24&pack=fa}}   {{icon>ban?24&pack=fa}}  | 
 + 
 +Voir toutes les branches de la plateforme d'hébergement : https://phpinfo.franceserv.fr/