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
Es wird ein neuer Controller im Ordner „Controller“ generiert:
<?php namespace App\Http\Controllers; class DownloadController extends Controller { // }
Schritt 2 – Route erstellen
Wir können die Methode in DownloadController mit der folgenden Route aufrufen:
Route::post('/download/{file_name}', 'DownloadController@downloadFile')->name('download.file');
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('public')->get($fileName); return Response::download($file, $fileName); } }
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
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); });
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); });
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!