Comment vérifier le type d'un fichier téléchargé de manière fiable sans utiliser l'extension? Je devine que vous devez examiner l'en-tête/lire certains des octets, mais je n'ai vraiment aucune idée de comment s'y prendre. Im en utilisant C# et asp.net.Comment vérifier le contenu d'un fichier téléchargé sans compter sur son extension?
Merci pour tout conseil.
ok, donc à partir des liens ci-dessus, je sais maintenant que je suis à la recherche pour « ff ff d8 e0 » pour identifier positivement un fichier .jpg par exemple.
Dans mon code, je peux lire les vingt premiers octets aucun problème:
FileStream fs = File.Open(filePath, FileMode.Open);
Byte[] b = new byte[20];
fs.Read(b, 0, 20);
donc (et s'il vous plaît excuser mon manque d'expérience totale ici), mais comment puis-je vérifier si le tableau d'octets contient « ff d8 ff e0 » ?
parce que j'utilise un composant qui diffuse tout en binaire! – flesh
Le premier lien est beaucoup plus complet que le second. –
Vous ne pouvez pas compter sur Content-Type, car le client peut être hostile et revendiquer délibérément un type de contenu incorrect dans le cadre d'une attaque. Il est préférable de ne pas faire confiance à Content-Type que de faire confiance aux extensions de fichiers. –