Maison > cadre php > Laravel > Comment empêcher le téléchargement de Laravel

Comment empêcher le téléchargement de Laravel

PHPz
Libérer: 2023-04-21 10:37:57
original
680 Les gens l'ont consulté

À 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
Copier après la connexion

Elle générera un nouveau contrôleur dans le dossier Controllers :

<?php
namespace App\Http\Controllers;

class DownloadController extends Controller
{
    //
}
Copier après la connexion

Étape 2 – Créer une route

Nous pouvons appeler la méthode dans DownloadController avec la route suivante :

Route::post(&#39;/download/{file_name}&#39;, &#39;DownloadController@downloadFile&#39;)->name('download.file');
Copier après la connexion

É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(&#39;public&#39;)->get($fileName);

        return Response::download($file, $fileName);
    }
}
Copier après la connexion

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
Copier après la connexion

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);
});
Copier après la connexion

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);
});
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal