Maison  >  Article  >  développement back-end  >  Guide de sécurité du téléchargement de fichiers PHP : Comment utiliser le tableau $_FILES pour obtenir des informations sur les fichiers téléchargés

Guide de sécurité du téléchargement de fichiers PHP : Comment utiliser le tableau $_FILES pour obtenir des informations sur les fichiers téléchargés

WBOY
WBOYoriginal
2023-07-30 18:53:361122parcourir

Guide de sécurité du téléchargement de fichiers PHP : Comment utiliser le tableau $_FILES pour obtenir des informations sur les fichiers téléchargés

Résumé :
Le téléchargement de fichiers est l'une des fonctions courantes dans le développement Web. Cependant, une mise en œuvre incorrecte du téléchargement de fichiers peut entraîner des failles de sécurité, entraînant des risques potentiels pour l'application. Cet article expliquera comment utiliser le tableau $_FILES de PHP pour obtenir en toute sécurité les informations sur les fichiers téléchargés et les combinera avec des exemples de code pour aider les lecteurs à mieux comprendre.

  1. Définir des limites de téléchargement de fichiers appropriées
    En PHP, nous pouvons utiliser le fichier php.ini pour définir les limites de téléchargement de fichiers. Voici quelques options de configuration courantes :

    ; 允许上传的文件最大大小
    upload_max_filesize = 5M
    ; 允许同时上传的文件数量
    max_file_uploads = 20
    ; 允许上传的文件类型
    allowed_file_types = image/jpeg, image/png

    Grâce à ces paramètres, nous pouvons contrôler la taille, la quantité et le type de fichiers téléchargés, évitant ainsi efficacement certains problèmes de sécurité potentiels.

  2. Utilisez le tableau $_FILES pour obtenir des informations sur les fichiers téléchargés
    En PHP, nous pouvons utiliser le tableau $_FILES pour obtenir des informations sur les fichiers téléchargés. Le tableau $_FILES est un tableau associatif, son nom de clé est le nom du champ de saisie dans le formulaire de téléchargement de fichier et la valeur de clé est un tableau contenant des informations sur le fichier téléchargé.

Ce qui suit est un exemple d'utilisation de base :

<form action="upload.php" method="POST" enctype="multipart/form-data">
  <input type="file" name="file" />
  <input type="submit" value="上传" />
</form>

Dans le script PHP de téléchargement de fichiers, nous pouvons obtenir les informations du fichier téléchargé comme ceci :

$file = $_FILES['file'];
echo "文件名:" . $file['name'] . "<br />";
echo "文件类型:" . $file['type'] . "<br />";
echo "文件大小:" . $file['size'] . "字节 <br />";
echo "临时文件名:" . $file['tmp_name'] . "<br />";

Grâce au tableau $_FILES, nous pouvons facilement obtenir le nom de le fichier téléchargé, des informations telles que le type, la taille et le nom du fichier temporaire.

  1. Contrôles de sécurité pour les fichiers téléchargés
    En plus d'obtenir des informations sur les fichiers téléchargés, nous devons également effectuer des contrôles de sécurité supplémentaires. Voici quelques méthodes courantes de vérification de sécurité :

3.1 Vérifiez le type MIME des fichiers téléchargés

$allowed_mime_types = array('image/jpeg', 'image/png');
if (!in_array($file['type'], $allowed_mime_types)) {
  die("禁止上传该类型的文件");
}

En vérifiant le type MIME des fichiers téléchargés, nous pouvons empêcher les utilisateurs de télécharger des types de fichiers illégaux.

3.2 Vérifiez l'extension du fichier

$allowed_extensions = array('jpg', 'png');
$extension = pathinfo($file['name'], PATHINFO_EXTENSION);
if (!in_array($extension, $allowed_extensions)) {
  die("禁止上传该扩展名的文件");
}

En vérifiant l'extension du fichier, nous pouvons garantir davantage la légitimité du fichier téléchargé.

3.3 Déplacer et télécharger des fichiers vers le répertoire spécifié

$target_directory = "uploads/";
$target_path = $target_directory . $file['name'];
if (move_uploaded_file($file['tmp_name'], $target_path)) {
  echo "文件上传成功";
} else {
  echo "文件上传失败";
}

Lors du déplacement et du téléchargement de fichiers vers le répertoire spécifié, nous devons également nous assurer que le répertoire cible dispose des paramètres d'autorisation appropriés pour empêcher les utilisateurs malveillants de télécharger des fichiers contenant du code malveillant.

Conclusion : 
En utilisant le tableau $_FILES, combiné à des contrôles de sécurité appropriés, nous pouvons obtenir en toute sécurité des informations pertinentes sur les fichiers téléchargés, évitant ainsi les risques de sécurité indésirables. Que vous soyez un développeur nouveau ou expérimenté, vous devez garder à l'esprit la sécurité du téléchargement de fichiers pendant le processus de développement et suivre les meilleures pratiques pour protéger la sécurité de votre application et des données utilisateur.

Référence :

  • Documentation officielle PHP : http://php.net/manual/zh/reserved.variables.files.php

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