Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich ein sicheres Bild-Upload-Skript erstellen?

Wie kann ich ein sicheres Bild-Upload-Skript erstellen?

Mary-Kate Olsen
Freigeben: 2024-12-08 17:39:12
Original
518 Leute haben es durchsucht

How Can I Create a Secure Image Upload Script?

Vollständiges Skript zum sicheren Hochladen von Bildern

Einführung

Die Gewährleistung sicherer Bild-Uploads ist für den Schutz Ihres Servers und Ihrer Daten von entscheidender Bedeutung. Dieses Skript beschreibt einen umfassenden Ansatz, um maximale Sicherheit beim Hochladen von Bildern zu erreichen.

Schritt 1: Dateitypvalidierung

HTML-Formular:

<form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="image">
    <input type="submit" name="upload" value="Upload">
</form>
Nach dem Login kopieren

PHP:

$allowedTypes = ['image/jpeg', 'image/png', 'image/gif'];
if (!in_array($_FILES['image']['type'], $allowedTypes)) {
    echo "Invalid file type";
    exit;
}
Nach dem Login kopieren

Schritt 2: Validierung des Bildinhalts mit GD Bibliothek

$verifyimg = getimagesize($_FILES['image']['tmp_name']);
if ($verifyimg['mime'] != $_FILES['image']['type']) {
    echo "Invalid image content";
    exit;
}
Nach dem Login kopieren

Schritt 3: Eingeschränktes Upload-Verzeichnis

Speichern Sie hochgeladene Bilder außerhalb des zugänglichen Dokumentstammverzeichnisses oder in einem geschützten Verzeichnis:

/uploads
Nach dem Login kopieren

Schritt 4: Datei ausblenden Informationen von Besuchern

Benennen Sie hochgeladene Bilder um, ändern Sie die Erweiterung und speichern Sie die ursprünglichen Informationen in einem Datenbank:

PHP:

$uploadfile = tempnam_sfx($uploaddir, ".tmp");
if (move_uploaded_file($_FILES['image']['tmp_name'], $uploadfile)) {
    // Database logic to store original name and MIME type
}
Nach dem Login kopieren

Schritt 5: Sicherer Bildabruf

PHP:

$id = 1; // For example
$sql = "SELECT name, original_name, mime_type FROM uploads WHERE>
Nach dem Login kopieren

Schritt 6: Zusätzliche Funktionen

Maximale Datei Größenvalidierung:

if ($_FILES['image']['size'] > 1000000) {
    echo "File size too large";
    exit;
}
Nach dem Login kopieren

ImageUpload-Klasse:

Ich habe eine ImageUpload-Klasse erstellt, um den Upload-Prozess zu vereinfachen. Laden Sie das Paket herunter und befolgen Sie die README-Datei für Anweisungen.

Open-Source-Verfügbarkeit:

Die ImageUpload-Klasse ist jetzt auf GitHub für Community-Beiträge und Verbesserungen verfügbar.

Das obige ist der detaillierte Inhalt vonWie kann ich ein sicheres Bild-Upload-Skript erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage