Filtrage de données PHP : Prévenir les téléchargements de fichiers malveillants
Ces dernières années, avec le développement de la technologie réseau, les téléchargements de fichiers malveillants sont devenus l'une des principales menaces pour la sécurité Internet. Le téléchargement de fichiers malveillants signifie que les attaquants contournent les restrictions de téléchargement de fichiers du site Web en téléchargeant des fichiers illégaux, ce qui entraîne des problèmes de sécurité tels que l'exploitation de vulnérabilités et l'injection de code malveillant. Afin de protéger la sécurité du site Web, nous devons filtrer et vérifier les données du code PHP pour empêcher le téléchargement de fichiers malveillants.
$allowedExtensions = array('jpg', 'jpeg', 'png', 'gif'); // 允许上传的文件类型 $fileExtension = strtolower(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION)); // 获取文件后缀 if (!in_array($fileExtension, $allowedExtensions)) { die('只允许上传图片文件'); }
$allowedMimeTypes = array('image/jpeg', 'image/png', 'image/gif'); // 允许上传的MIME类型 $uploadedFile = $_FILES['file']['tmp_name']; // 获取上传的临时文件路径 $uploadedMimeType = mime_content_type($uploadedFile); // 获取上传文件的MIME类型 if (!in_array($uploadedMimeType, $allowedMimeTypes)) { die('只允许上传图片文件'); }
$maxFileSize = 5 * 1024 * 1024; // 允许上传的最大文件大小(5MB) $uploadedFileSize = $_FILES['file']['size']; // 获取上传文件的大小 if ($uploadedFileSize > $maxFileSize) { die('文件大小超过限制'); }
$uploadedFileName = $_FILES['file']['name']; // 获取上传文件的原始文件名 $newFileName = uniqid() . '.' . $fileExtension; // 生成新的文件名 $uploadedFilePath = './uploads/' . $newFileName; // 设置上传文件保存的路径 if (move_uploaded_file($_FILES['file']['tmp_name'], $uploadedFilePath)) { echo '文件上传成功'; } else { echo '文件上传失败'; }
Pour résumer, en effectuant une vérification des suffixes, une vérification du type MIME, une vérification de la taille des fichiers et une prévention des noms de fichiers sur les fichiers téléchargés, le risque de téléchargements de fichiers malveillants peut être efficacement évité. Bien entendu, afin d'assurer la sécurité du système, nous devons également régulièrement mettre à jour et mettre à niveau le logiciel du serveur, corriger les vulnérabilités connues en temps opportun et garantir la sécurité des données du site Web et la confidentialité des utilisateurs.
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!