Maison  >  Article  >  développement back-end  >  Guide de sécurité du téléchargement de fichiers PHP : Comment vérifier le type MIME des fichiers téléchargés à l'aide du tableau $_FILES

Guide de sécurité du téléchargement de fichiers PHP : Comment vérifier le type MIME des fichiers téléchargés à l'aide du tableau $_FILES

PHPz
PHPzoriginal
2023-07-29 15:02:111820parcourir

Guide de sécurité du téléchargement de fichiers PHP : Comment utiliser le tableau $_FILES pour vérifier le type MIME des fichiers téléchargés

Introduction :
En développement, le téléchargement de fichiers est une fonction très courante. Cependant, une fonctionnalité de téléchargement de fichiers incorrecte peut entraîner des problèmes de sécurité. Les utilisateurs malveillants peuvent télécharger des fichiers malveillants pour exécuter du code à distance ou obtenir des informations sensibles. Afin de garantir la sécurité de la fonction de téléchargement de fichiers, nous devons vérifier et filtrer correctement les fichiers téléchargés. Cet article explique comment utiliser le tableau $_FILES pour vérifier le type MIME des fichiers téléchargés afin d'améliorer la sécurité de la fonction de téléchargement de fichiers.

Que sont les types MIME ?
Le type MIME (MultiPurpose Internet Mail Extensions) est une norme pour représenter les types de fichiers. Il est basé sur l'extension du fichier et est utilisé pour spécifier le type de contenu du fichier. Lors du téléchargement de fichiers, nous pouvons nous assurer que le fichier téléchargé est du type attendu en vérifiant le type MIME du fichier pour empêcher les fichiers non fiables d'entrer sur le serveur.

Utilisez le tableau $_FILES pour obtenir des informations sur les fichiers téléchargés
Le tableau $_FILES en PHP contient des informations pertinentes pendant le processus de téléchargement de fichiers. Nous pouvons utiliser ce tableau pour obtenir les propriétés du fichier téléchargé, notamment le nom du fichier, le chemin du fichier temporaire, la taille du fichier, etc. Voici un exemple :

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

<?php
if(isset($_FILES['upload_file'])){
    $file_name = $_FILES['upload_file']['name'];
    $file_tmp = $_FILES['upload_file']['tmp_name'];
    $file_size = $_FILES['upload_file']['size'];
    
    // 其他操作...
}
?>

Comment vérifier le type MIME d'un fichier téléchargé
En vérifiant le type MIME d'un fichier, nous pouvons assurer la sécurité du téléchargement du fichier. PHP fournit un moyen d'obtenir le type MIME d'un fichier, en utilisant les fonctions finfo_open() et finfo_file(). Voici un exemple de code pour vérifier le type MIME d'un fichier :

<?php
if(isset($_FILES['upload_file'])){
    $file_tmp = $_FILES['upload_file']['tmp_name'];
    
    // 创建一个Fileinfo资源
    $finfo = finfo_open(FILEINFO_MIME_TYPE);
    
    // 获取文件的MIME类型
    $mime_type = finfo_file($finfo, $file_tmp);
    
    // 关闭Fileinfo资源
    finfo_close($finfo);
    
    // 其他操作...
}
?>

Dans l'exemple ci-dessus, nous créons d'abord une ressource Fileinfo à l'aide de la fonction finfo_open(), et le paramètre FILEINFO_MIME_TYPE est utilisé pour spécifier le type MIME du fichier. nous devons obtenir. Ensuite, nous utilisons la fonction finfo_file() pour obtenir le type MIME du fichier, et les paramètres transmis sont la ressource Fileinfo et le chemin temporaire du fichier. Enfin, nous utilisons la fonction finfo_close() pour fermer la ressource Fileinfo.

Comment vérifier si le type MIME d'un fichier est légal
Une fois que nous obtenons le type MIME du fichier téléchargé, nous devons le vérifier pour nous assurer qu'il est légal. Nous pouvons utiliser la fonction in_array() pour vérifier si le type MIME est dans notre liste de types MIME autorisés. Voici un exemple de code :

$allowed_mime_types = array('image/jpeg', 'image/png', 'image/gif');
if(in_array($mime_type, $allowed_mime_types)){
    // MIME类型合法,进行其他操作...
}else{
    // MIME类型不合法,进行错误处理...
}

Dans l'exemple ci-dessus, nous définissons un tableau de types MIME autorisés $allowed_mime_types, qui contient les types de fichiers que nous autorisons. Ensuite, nous utilisons la fonction in_array() pour vérifier si $file_mime_type est dans le tableau $allowed_mime_types. Si le type MIME est légal, nous pouvons effectuer d'autres opérations, sinon, nous pouvons effectuer une gestion des erreurs ou refuser le téléchargement du fichier.

Résumé :
Le téléchargement de fichiers est une fonction courante dans le développement Web, mais une fonction de téléchargement de fichiers incorrecte peut entraîner des risques de sécurité. Afin de garantir la sécurité de la fonction de téléchargement de fichiers, nous devons vérifier et filtrer correctement les fichiers téléchargés. Cet article décrit comment utiliser le tableau $_FILES pour vérifier le type MIME des fichiers téléchargés afin d'améliorer la sécurité de la fonction de téléchargement de fichiers. En vérifiant et en vérifiant le type MIME des fichiers, nous pouvons empêcher les fichiers non fiables d'entrer sur le serveur, améliorant ainsi la sécurité du système.

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