À l’ère de l’information, il existe inévitablement des situations où les données doivent être protégées. Pour les applications Web, l'une des mesures de sécurité de base consiste à empêcher les utilisateurs ou les programmes illégaux de télécharger les fichiers spécifiés.
Dans le framework Laravel, la méthode pour empêcher le téléchargement de fichiers est relativement simple. Cet article présentera plusieurs façons de protéger correctement vos fichiers afin de rendre votre site Web plus sécurisé et d'éviter d'être attaqué par des pirates.
1. Utilisez la méthode de routage de Laravel
Dans Laravel, vous pouvez utiliser le routage pour contrôler quels fichiers peuvent être téléchargés et lesquels ne peuvent pas être téléchargés.
Étape 1 – Créer un contrôleur
Créez un nouveau contrôleur dans le répertoire app/Http/Controllers. Nous utilisons la commande suivante :
php artisan make:controller DownloadController
Elle générera un nouveau contrôleur dans le dossier Controllers :
<?php namespace App\Http\Controllers; class DownloadController extends Controller { // }
Étape 2 – Créer une route
Nous pouvons appeler la méthode dans DownloadController avec la route suivante :
Route::post('/download/{file_name}', 'DownloadController@downloadFile')->name('download.file');
Étape 3 – Créer un téléchargement Méthode
L'étape suivante consiste à créer une nouvelle méthode pour le DownloadController afin qu'il puisse être appelé depuis la route GET.
<?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); } }
Maintenant, vous pouvez saisir l'adresse URL suivante dans le navigateur Web pour tester le programme :
http://127.0.0.1:8000/download/before-download-test-file.txt
2. Méthode utilisant la classe File
Cette méthode utilise la fonction file_get_contents() de PHP, qui a la capacité d'accéder aux fichiers et la fonction pour lire son contenu.
Route::get('/download', function(){ $file = public_path()."/test.zip"; $headers = array( 'Content-Type: application/octet-stream', ); return Response::download($file, 'test.zip', $headers); });
3. Lire le fichier directement
La troisième méthode est la méthode la plus courante. L'idée de base est de lire le fichier directement dans la mémoire et de l'envoyer au client.
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); });
Résumé
Concernant la façon d'empêcher le téléchargement de fichiers dans Laravel, vous avez le choix entre plusieurs calibres. Initialement, le routage peut être utilisé pour contrôler quels fichiers peuvent et ne peuvent pas être téléchargés. Au-delà de cela, il existe deux méthodes standard : utiliser la classe File de Laravel (file_get_contents()) ou lire directement le fichier. Assurer la sécurité de votre site Web est crucial en matière de protection des fichiers et de sécurité des téléchargements, et si elles sont mises en œuvre correctement, ces méthodes peuvent améliorer la sécurité de votre site Web et éviter les fausses attaques.
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!