Maison >base de données >tutoriel mysql >Comment restreindre en toute sécurité les types de fichiers dans les téléchargements de fichiers PHP ?

Comment restreindre en toute sécurité les types de fichiers dans les téléchargements de fichiers PHP ?

DDD
DDDoriginal
2024-11-03 03:13:02491parcourir

How to Securely Restrict File Types in PHP File Uploads?

Téléchargement de fichiers PHP : restriction des types de fichiers

Lors du traitement des téléchargements de fichiers, il est crucial de valider le type et la taille du fichier téléchargé pour garantir la sécurité et maintenir la fonctionnalité prévue. Le code fourni vise à le faire en vérifiant l’extension, le type et la taille du fichier. Cependant, il présente quelques problèmes.

Problèmes avec le code d'origine :

  • N'applique pas le type de fichier ; il autorise les fichiers avec des extensions non autorisées (par exemple, TXT).
  • Ne vérifie pas correctement la taille du fichier.

Solution :

Pour résoudre ces problèmes, nous pouvons utiliser les types MIME pour la validation des fichiers et des vérifications séparées pour la limite de taille.

Code mis à jour :

<code class="php">function allowed_file() {
  // Allowed mime types
  $allowed = array('application/doc', 'application/pdf', 'another/type');

  // Validate file type using mime type
  if (in_array($_FILES['resume']['type'], $allowed) && in_array($_FILES['reference']['type'], $allowed)) {

    // Validate file size
    if ($_FILES["resume"]["size"] < 400000 && $_FILES["reference"]["size"] < 400000) {

      // Files are allowed; proceed with upload process...
    }
  }
}</code>

Explication :

  • Nous définissons un tableau de types MIME autorisés.
  • Pour chaque fichier téléchargé, nous vérifions si son type MIME est dans le tableau autorisé.
  • Après avoir validé les types de fichiers, nous effectuons des vérifications de taille pour nous assurer qu'ils sont inférieurs à la limite spécifiée.
  • Si toutes les validations réussissent, nous pouvons poursuivre le processus de téléchargement des fichiers, comme le déplacement vers la destination souhaité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