Heim > PHP-Framework > Laravel > So verhindern Sie, dass Laravel heruntergeladen wird

So verhindern Sie, dass Laravel heruntergeladen wird

PHPz
Freigeben: 2023-04-21 10:37:57
Original
666 Leute haben es durchsucht

Im Informationszeitalter gibt es zwangsläufig Situationen, in denen Daten geschützt werden müssen. Bei Webanwendungen besteht eine der grundlegenden Sicherheitsmaßnahmen darin, zu verhindern, dass Benutzer oder illegale Programme bestimmte Dateien herunterladen.

Im Laravel-Framework ist die Methode zum Verhindern des Herunterladens von Dateien relativ einfach. In diesem Artikel werden verschiedene Möglichkeiten zum ordnungsgemäßen Schutz Ihrer Dateien vorgestellt, um Ihre Website sicherer zu machen und Angriffen durch Hacker vorzubeugen.

1. Verwenden Sie die Routing-Methode von Laravel

In Laravel können Sie Routing verwenden, um zu steuern, welche Dateien heruntergeladen werden können und welche nicht.

Schritt 1 – Controller erstellen

Erstellen Sie einen neuen Controller im Verzeichnis app/Http/Controllers. Wir verwenden den folgenden Befehl:

php artisan make:controller DownloadController
Nach dem Login kopieren

Es ​​wird ein neuer Controller im Ordner „Controller“ generiert:

<?php
namespace App\Http\Controllers;

class DownloadController extends Controller
{
    //
}
Nach dem Login kopieren

Schritt 2 – Route erstellen

Wir können die Methode in DownloadController mit der folgenden Route aufrufen:

Route::post(&#39;/download/{file_name}&#39;, &#39;DownloadController@downloadFile&#39;)->name('download.file');
Nach dem Login kopieren

Schritt 3 – Download erstellen Methode

Der nächste Schritt besteht darin, eine neue Methode für den DownloadController zu erstellen, damit dieser von der GET-Route aufgerufen werden kann.

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Response;

class DownloadController extends Controller
{
    public function downloadFile($fileName)
    {
        $file = Storage::disk(&#39;public&#39;)->get($fileName);

        return Response::download($file, $fileName);
    }
}
Nach dem Login kopieren

Jetzt können Sie die folgende URL-Adresse in den Webbrowser eingeben, um das Programm zu testen:

http://127.0.0.1:8000/download/before-download-test-file.txt
Nach dem Login kopieren

2. Methode mit der File-Klasse

Diese Methode verwendet die Funktion file_get_contents() von PHP, die auf Dateien und Dateien zugreifen kann die Funktion zum Lesen des Inhalts.

Route::get('/download', function(){
    $file = public_path()."/test.zip";
    $headers = array(
              'Content-Type: application/octet-stream',
            );
    return Response::download($file, 'test.zip', $headers);
});
Nach dem Login kopieren

3. Die Datei direkt lesen

Die dritte Methode ist die gebräuchlichste Methode. Die Grundidee besteht darin, die Datei direkt in den Speicher einzulesen und an den Client zu senden.

Route::get('/download', function(){
    $file = public_path()."/test.zip";
    $headers = array(
              'Content-Type: application/octet-stream',
            );
    return Response::make(file_get_contents($file), 200, $headers);
});
Nach dem Login kopieren

Zusammenfassung

Um zu verhindern, dass Dateien in Laravel heruntergeladen werden, stehen mehrere Kaliber zur Auswahl. Zunächst kann Routing verwendet werden, um zu steuern, welche Dateien heruntergeladen werden können und welche nicht. Darüber hinaus gibt es zwei Standardmethoden: die Verwendung der File-Klasse von Laravel (file_get_contents()) oder das direkte Lesen der Datei. Die Sicherheit Ihrer Website ist von entscheidender Bedeutung, wenn es um Dateischutz und Download-Sicherheit geht. Wenn diese Methoden richtig implementiert werden, können sie die Sicherheit Ihrer Website erhöhen und gefälschte Angriffe verhindern.

Das obige ist der detaillierte Inhalt vonSo verhindern Sie, dass Laravel heruntergeladen wird. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage