Maison  >  Article  >  développement back-end  >  Les fichiers PHP contiennent des vulnérabilités et une explication détaillée des méthodes de prévention

Les fichiers PHP contiennent des vulnérabilités et une explication détaillée des méthodes de prévention

PHPz
PHPzoriginal
2023-06-08 11:03:471451parcourir

Explication détaillée des vulnérabilités d'inclusion de fichiers PHP et méthodes de prévention

Dans les applications WEB, la fonction d'inclusion de fichiers est une fonction très courante. Cependant, des vulnérabilités d'inclusion de fichiers peuvent survenir si les paramètres saisis par l'utilisateur ne sont pas traités avec soin. Cette vulnérabilité pourrait permettre à un attaquant de télécharger du code PHP et de l'inclure dans l'application, prenant ainsi le contrôle du serveur. Par conséquent, il est très nécessaire d’avoir une compréhension approfondie des causes et des méthodes de prévention des vulnérabilités d’inclusion de fichiers PHP.

Causes des vulnérabilités d'inclusion de fichiers PHP

L'apparition de vulnérabilités d'inclusion de fichiers PHP est généralement liée aux deux raisons suivantes :

1. correct Filtrer les données d'entrée utilisateur

En PHP, vous pouvez inclure un fichier PHP dans un autre fichier PHP via include, require et d'autres fonctions. Si les données soumises par l'utilisateur sont utilisées comme chemin de fichier dans ces fonctions, l'attaquant peut facilement créer un script PHP contenant du code malveillant et le télécharger sur le serveur. Par exemple :

<?php
   $page=$_GET['page'];
   include($page);
?>

Dans cet exemple, l'attaquant peut définir le paramètre de page sur http://example.com/shell.php pour inclure le fichier shell.php dans l'application.

2. La légalité des données saisies par l'utilisateur n'est pas vérifiée

Même si les données saisies par l'utilisateur sont filtrées, les attaquants peuvent toujours utiliser d'autres méthodes pour atteindre les vulnérabilités d'inclusion de fichiers. Par exemple, utilisez des chemins relatifs tels que ../ pour accéder, ou utilisez %00, etc. pour contourner le caractère de fin nul. Par exemple :

<?php
   $page=$_GET['page'];
   include('pages/'.$page);
?>

Dans cet exemple, l'attaquant peut définir le paramètre de page sur ../shell.php, contournant ainsi les restrictions de fichiers dans le répertoire des pages et accédant aux fichiers du répertoire supérieur. Fichier .php.

Comment prévenir les vulnérabilités d'inclusion de fichiers PHP

Afin de prévenir efficacement les vulnérabilités d'inclusion de fichiers PHP, vous devez faire attention aux points suivants :

#🎜🎜 #1. Essayez autant que possible d'utiliser des chemins absolus

L'utilisation de chemins absolus peut empêcher efficacement les attaquants de contourner les restrictions en utilisant des chemins relatifs tels que ../. Par exemple, vous pouvez utiliser $_SERVER['DOCUMENT_ROOT'] pour obtenir le répertoire racine du site Web, puis utiliser les fonctions include, require et autres en combinaison avec le chemin de fichier spécifique. Par exemple :

<?php
   $page=$_GET['page'];
   include($_SERVER['DOCUMENT_ROOT'].'/pages/'.$page);
?>

2. Utilisez la liste blanche pour filtrer les données d'entrée

Créez une liste blanche contenant tous les noms de fichiers autorisés, puis filtrez les données saisies par l'utilisateur. Par exemple :

<?php
   $page=$_GET['page'];
   $whitelist=array('home','about','contact');
   if(in_array($page,$whitelist)){
      include("pages/".$page.".php");
   }else{
      echo "Invalid page requested";
   }
?>

3. Placez les fonctions include, require et autres et les données saisies par l'utilisateur dans différentes instructions

Placez les fonctions include, require et autres avec les données saisies par l'utilisateur. les inclure dans différentes déclarations peut efficacement éviter certaines failles subtiles. Par exemple :

<?php
   $page=$_GET['page'];
   $file="pages/".$page;
   if(file_exists($file)){
      include($file);
   }else{
      echo "Invalid page requested";
   }
?>

En bref, il est très nécessaire pour les développeurs d'applications WEB de comprendre les causes et les méthodes de prévention des vulnérabilités d'inclusion de fichiers PHP. En utilisant des méthodes de prévention appropriées et de bonnes habitudes de programmation, l'apparition de vulnérabilités d'inclusion de fichiers peut être efficacement réduite et la sécurité des applications WEB peut également être améliorée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn