Aktueller Standort: Startseite> Neueste Artikel> So überprüfen Sie die Integrität von hochgeladenen Dateien über MD5_file ()

So überprüfen Sie die Integrität von hochgeladenen Dateien über MD5_file ()

M66 2025-05-31

Das Datei -Upload ist eine sehr häufige Funktion in der Website -Entwicklung. Die damit verbundene Frage ist jedoch, wie Sie die Integrität und Sicherheit von hochgeladenen Dateien sicherstellen können. Die Datei kann während der Übertragung manipuliert werden oder eine böswillige Datei wurde hochgeladen. PHP bietet eine bequeme Funktion md5_file () , mit der Entwickler den MD5 -Verifizierungscode einer Datei schnell berechnen können, wodurch überprüft wird, ob die Datei manipuliert oder beschädigt wurde.

Was ist md5_file ()?

MD5_FILE () ist eine PHP-integrierte Funktion, die den MD5-Hash-Wert der angegebenen Datei direkt berechnet und eine 32-Bit-Zeichenfolge zurückgibt. Der MD5 -Hash -Wert kann verwendet werden, um festzustellen, ob der Dateiinhalt konsistent ist. Wenn sich der Dateiinhalt ändert, ist der entsprechende MD5 -Wert unterschiedlich.

Funktionsprototyp:

 string md5_file ( string $filename [, bool $raw_output = false ] )
  • $ Dateiname : Dateipfad.

  • $ raw_output : Ob das ursprüngliche Binärformat zurückgegeben werden soll, standardmäßig an false , gibt eine 32-Bit-Hexadezimal-Zeichenfolge zurück.

Szenarien verwenden

  1. Überprüfen Sie die Integrität von hochgeladenen Dateien <br> Wenn der Benutzer die Datei hochlädt, berechnet der Server den MD5 -Wert der hochgeladenen Datei und vergleicht sie mit dem vom Client berechneten MD5 -Wert vor dem Hochladen, um sicherzustellen, dass die Datei nicht manipuliert wurde.

  2. Verhindern doppelte Uploads <br> Verwenden Sie den MD5 -Wert, um festzustellen, ob Dateien mit demselben Inhalt bereits auf dem Server vorhanden sind, um einen redundanten Speicher zu vermeiden.

  3. Sicherheitstest <br> Sie können den MD5 -Wert einer Datei mit der MD5 Value Library mit bekannten böswilligen Dateien vergleichen, um gefährliche Dateien zu filtern.

Beispiel: Verwenden Sie MD5_File (), um das Hochladen von Dateien zu überprüfen

Im Folgenden finden Sie ein einfaches Beispiel -Upload -Beispiel für Datei -Upload, wobei MD5_FILE () verwendet wird, um die Dateiintegrität zu überprüfen.

 <?php
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['upload_file'])) {
    $uploadDir = '/var/www/uploads/';
    $uploadedFile = $_FILES['upload_file']['tmp_name'];
    $originalName = $_FILES['upload_file']['name'];

    // Berechnen Sie die hochgeladene Datei md5 Wert
    $md5Hash = md5_file($uploadedFile);

    // Hier können Sie es an den Kunden sendenmd5Wert比对,Angenommen, der Kunde kommtmd5Wert
    $clientMd5 = $_POST['client_md5'] ?? '';

    if ($clientMd5 && $md5Hash !== $clientMd5) {
        echo "Die Integritätsüberprüfung der hochgeladenen Datei ist fehlgeschlagen,Die Datei wurde möglicherweise manipuliert。";
        exit;
    }

    // Vermeiden Sie wiederholte Uploads(Einfache Verwendung im Beispielmd5Als Dateiname)
    $destination = $uploadDir . $md5Hash;

    if (file_exists($destination)) {
        echo "Die Datei existiert bereits,Sie müssen nicht wiederholt hochladen。";
    } else {
        if (move_uploaded_file($uploadedFile, $destination)) {
            echo "Datei hochladen erfolgreich,MD5Wert为:$md5Hash";
        } else {
            echo "Datei -Upload fehlgeschlagen。";
        }
    }
} else {
?>
<form method="post" enctype="multipart/form-data" action="http://m66.net/upload.php">
    Bitte wählen Sie eine Datei aus:<input type="file" name="upload_file" required><br>
    dokumentierenMD5Bestätigungscode(Optional):<input type="text" name="client_md5"><br>
    <button type="submit">Hochladen</button>
</form>
<?php
}
?>

veranschaulichen:

  • Front-End-Benutzer können zunächst Tools verwenden, um den MD5 der Datei zu berechnen und das Feld client_md5 des Formulars auszufüllen. Auf der Serverseite verglichen die MD5 der hochgeladenen Datei mit diesem Wert.

  • Die Serverseite verwendet den MD5 -Wert der Datei als Speichername, um wiederholte Uploads von Dateien zu verhindern.

  • Die Funktion move_Uploaded_file () stellt sicher, dass Dateien sicher von temporären Verzeichnissen zu Zielverzeichnissen verschoben werden.

Weitere Sicherheitsberatung

  • Dateitypen einschränken : Überprüfen Sie die Dateierweiterungen und MIME -Typen vor dem Hochladen.

  • Grenze begrenzen : Verhindern Sie, dass übermäßiger Serverdruck übermäßige Dateien hochgeladen wird.

  • Verwenden Sie HTTPS : Stellen Sie sicher, dass der Dateiübertragungsprozess nicht von Man-in-the-Middle angegriffen wird.

  • Aktualisieren Sie regelmäßig die böswillige Dateibibliothek : Verwenden Sie den Datei MD5, um mit bekannten Virus -Datenbanken zu vergleichen, um gefährliche Dateien zu filtern.

  • Vermeiden Sie den direkten Zugriff auf das Upload -Verzeichnis : Verwenden Sie sichere Speicherpfade und Berechtigungssteuerungen.