Maison > développement back-end > tutoriel php > Comment puis-je créer un script de téléchargement d'image sécurisé ?

Comment puis-je créer un script de téléchargement d'image sécurisé ?

Mary-Kate Olsen
Libérer: 2024-12-08 17:39:12
original
516 Les gens l'ont consulté

How Can I Create a Secure Image Upload Script?

Script complet de téléchargement d'images sécurisé

Introduction

Garantir des téléchargements d'images sécurisés est crucial pour protéger votre serveur et vos données. Ce script décrit une approche globale pour obtenir une sécurité maximale de téléchargement d'images.

Étape 1 : Validation du type de fichier

Formulaire HTML :

<form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="image">
    <input type="submit" name="upload" value="Upload">
</form>
Copier après la connexion

PHP :

$allowedTypes = ['image/jpeg', 'image/png', 'image/gif'];
if (!in_array($_FILES['image']['type'], $allowedTypes)) {
    echo "Invalid file type";
    exit;
}
Copier après la connexion

Étape 2 : Validation du contenu de l'image à l'aide de GD Bibliothèque

$verifyimg = getimagesize($_FILES['image']['tmp_name']);
if ($verifyimg['mime'] != $_FILES['image']['type']) {
    echo "Invalid image content";
    exit;
}
Copier après la connexion

Étape 3 : Répertoire de téléchargement restreint

Stockez les images téléchargées en dehors de la racine du document accessible ou dans un répertoire protégé :

/uploads
Copier après la connexion

Étape 4 : Masquer le fichier Informations des visiteurs

Renommer et modifier l'extension des images téléchargées et stocker les informations d'origine dans un base de données :

PHP :

$uploadfile = tempnam_sfx($uploaddir, ".tmp");
if (move_uploaded_file($_FILES['image']['tmp_name'], $uploadfile)) {
    // Database logic to store original name and MIME type
}
Copier après la connexion

Étape 5 : Récupération sécurisée des images

PHP :

$id = 1; // For example
$sql = "SELECT name, original_name, mime_type FROM uploads WHERE>
Copier après la connexion

Étape 6 : Fonctionnalités supplémentaires

Maximum Validation de la taille du fichier :

if ($_FILES['image']['size'] > 1000000) {
    echo "File size too large";
    exit;
}
Copier après la connexion

Classe ImageUpload :

J'ai créé une classe ImageUpload pour simplifier le processus de téléchargement. Téléchargez le package et suivez le README pour les instructions.

Disponibilité Open Source :

La classe ImageUpload est désormais disponible sur GitHub pour les contributions et améliorations de la communauté.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal