Ces dernières années, avec le développement de la technologie du réseau, les téléchargements de fichiers malveillants sont devenus une menace majeure pour la sécurité sur Internet. En téléchargeant des fichiers malveillants, un attaquant peut contourner les restrictions de téléchargement de fichiers du site Web, ce qui entraînera des problèmes de sécurité tels que l'exploitation de la vulnérabilité et l'injection de code malveillant. Afin d'améliorer la sécurité du site Web, nous devons filtrer et vérifier efficacement les fichiers téléchargés dans le code PHP pour empêcher efficacement le téléchargement de fichiers malveillants.
Les fichiers malveillants sont souvent transmis comme des types de fichiers courants, donc la vérification du suffixe des fichiers téléchargés est la première étape pour prévenir les téléchargements malveillants. Voici un exemple simple de code:
$ allowedextensions = array ('jpg', 'jpeg', 'png', 'gif'); // Autoriser les types de fichiers téléchargés $ fileExtension = strtolower (pathinfo ($ _ fichiers ['file'] ['name'], pathinfo_extension)); // obtient le suffixe de fichier if (! In_array ($ fileExtension, $ allowedextensions)) { Die («seul le téléchargement des fichiers d'image est autorisé»); }
En plus de la vérification du suffixe, la vérification du type MIME du fichier est tout aussi importante. Cela empêche les fichiers malveillants d'être déguisés en fichiers légitimes. Vous pouvez utiliser la fonction PHP MIME_CONTENT_TYPE () pour obtenir le type MIME du fichier. Ce qui suit est un exemple de code:
$ allowingmimeTypes = array ('image / jpeg', 'image / png', 'image / gif'); // Autoriser le type mime téléchargé $ uploadFile = $ _files ['file'] ['tmp_name']; // Obtenez le chemin de fichier temporaire téléchargé $ uploadmimeType = mime_content_type ($ uploadFile); // Obtenez le type mime téléchargé if (! In_array ($ TéléchargémimeType, $ allowingMiMetypes)) { Die («seul le téléchargement des fichiers d'image est autorisé»); }
Afin d'empêcher un téléchargement excessif de fichiers d'occuper des ressources de serveur ou une bande passante, nous devons limiter la taille des fichiers téléchargés. PHP peut obtenir la taille du fichier via $ _files ['fichier'] , et ce qui suit est un exemple de code qui limite la taille du fichier:
$ maxFileSize = 5 * 1024 * 1024; // taille maximale du fichier autorisé à télécharger (5 Mo) $ TéléchargedFileSize = $ _files ['Fichier'] ['Size']; // Obtenez la taille du fichier téléchargé if ($ uploadFileSize> $ maxFileSize) { die ('la taille du fichier dépasse la limite'); }
Afin d'éviter la duplication des noms de fichiers téléchargés par différents utilisateurs, nous pouvons renommer le fichier téléchargé. Utilisez la fonction Uniqid () de PHP pour générer un nom de fichier unique et combinez-le avec le suffixe de fichier pour former un nouveau nom de fichier. Voici l'exemple de code pertinent:
$ uplodEdFileName = $ _files ['file'] ['name']; // Obtenez le nom du fichier d'origine du fichier téléchargé $ newFileName = uniqid (). '.' . $ fileExtension; // Générez un nouveau nom de fichier $ uploadedFilePath = './uploads/'. $ newFilename; // Définissez le chemin d'accès pour enregistrer le fichier téléchargé if (move_uploaded_file ($ _ fichiers ['file'] ['tmp_name'], $ uplodedFilePath)) { Echo 'Fichier Télécharger avec succès'; } autre { Echo 'Fichier Fichier Ftelod'; }
Pour résumer, grâce à la vérification du suffixe de fichiers, à la vérification du type MIME, aux restrictions de taille de fichier et à la prévention du nom de fichier, nous pouvons effectivement empêcher le risque de téléchargements de fichiers malveillants. De plus, garder les logiciels de serveur régulièrement mis à jour et le correctif des vulnérabilités connues est également une étape clé pour garantir la sécurité du système. Grâce à ces mesures, la sécurité du site Web peut être garantie, les données et la confidentialité des utilisateurs peuvent être protégées.