Maison > interface Web > js tutoriel > Comment les navigateurs peuvent-ils vérifier de manière fiable les types MIME avant le téléchargement de fichiers ?

Comment les navigateurs peuvent-ils vérifier de manière fiable les types MIME avant le téléchargement de fichiers ?

DDD
Libérer: 2024-12-02 04:12:14
original
286 Les gens l'ont consulté

How Can Browsers Reliably Check MIME Types Before File Upload?

Comment fonctionne la vérification MIME côté navigateur et pourquoi c'est délicat

JavaScript peut déterminer les types MIME de fichiers avant qu'ils ne soient téléchargés, mais validez-les côté serveur pour des raisons de sécurité.

Étape 1 : Utilisez FileReader API

Pour obtenir des informations sur le fichier :

var files = document.getElementsByTagName('input')[0].files;
console.log(files[0].type);
Copier après la connexion

Étape 2 : Extraire le type MIME

Méthode 1 : Utiliser Blob (Peut être trompé par le fichier extension)

console.log(files[0].type);
Copier après la connexion

Méthode 2 : Inspection d'en-tête (Plus fiable)

var fileReader = new FileReader();
fileReader.onloadend = function(e) {
  var header = (new Uint8Array(e.target.result)).subarray(0, 4).toString(16);
  switch (header) {
    case "89504e47":
      type = "image/png";
      break;
    case "47494638":
      type = "image/gif";
      break;
    case "ffd8ffe0":
    case "ffd8ffe1":
    case "ffd8ffe2":
      type = "image/jpeg";
      break;
    default:
      type = "unknown";
      break;
  }
};
fileReader.readAsArrayBuffer(files[0]);
Copier après la connexion

Remarque :

  • Les extensions de fichiers peuvent être falsifiées, l'inspection des en-têtes est donc plus fiable.
  • Les nombres magiques peuvent varier selon le type de fichier.
  • La validation côté serveur est toujours essentielle pour la sécurité.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal