Maison > développement back-end > tutoriel php > Laravel Middleware : protégez votre application contre les attaques malveillantes

Laravel Middleware : protégez votre application contre les attaques malveillantes

WBOY
Libérer: 2023-07-28 16:06:01
original
1290 Les gens l'ont consulté

Laravel Middleware : protégez vos applications contre les attaques malveillantes

Introduction :
À l'ère d'Internet d'aujourd'hui, les menaces à la sécurité des réseaux augmentent de jour en jour et les développeurs doivent protéger leurs applications contre les attaques malveillantes. Le framework Laravel fournit un mécanisme puissant, un middleware, pour protéger la sécurité des applications. Cet article présentera le concept du middleware Laravel et comment écrire et utiliser un middleware pour protéger votre application.

1. Qu'est-ce qu'un middleware ?
Middleware est un filtre du framework Laravel qui est utilisé pour effectuer une série d'actions avant ou après qu'une requête atteigne l'application. Il peut être utilisé pour filtrer, valider ou modifier les demandes et les réponses, améliorant ainsi la sécurité et la fiabilité de votre application. Par exemple, vous pouvez utiliser un middleware pour vérifier l'identité de l'utilisateur, vérifier la validité de la demande, enregistrer des journaux, etc.

2. Écriture d'un middleware
Dans Laravel, l'écriture d'un middleware est très simple. Tout d’abord, nous devons créer une classe middleware. Vous pouvez utiliser la commande Artisan php artisan make:middleware pour générer un modèle de classe middleware. Par exemple, exécutez la commande suivante pour créer une classe middleware nommée CheckUserAgent : php artisan make:middleware来生成一个中间件类的模板。例如,运行以下命令来创建一个名为CheckUserAgent的中间件类:

php artisan make:middleware CheckUserAgent
Copier après la connexion

当命令执行完毕后,我们得到了一个名为CheckUserAgent的中间件类位于app/Http/Middleware目录下。我们可以在这个类的handle方法中添加我们想要执行的操作,例如验证用户代理(User-Agent)是否合法。

namespace AppHttpMiddleware;

use Closure;

class CheckUserAgent
{
    public function handle($request, Closure $next)
    {
        // 获取请求的User-Agent
        $userAgent = $request->header('User-Agent');
        
        // 对User-Agent进行验证
        if ($userAgent !== 'MyApplication') {
            return response('Invalid User-Agent', 400);
        }
        
        return $next($request);
    }
}
Copier après la connexion

在上面的示例中,我们获取了请求的User-Agent,并验证其是否等于MyApplication。如果验证失败,我们返回一个400错误响应;否则,我们继续执行下一个中间件或路由处理程序。

三、使用中间件
一旦我们编写好了中间件类,我们就可以将其应用到路由或控制器上了。在Laravel中,我们可以使用middleware方法将中间件应用到路由或路由组上。例如,我们可以将CheckUserAgent中间件应用到某个路由上:

Route::get('/api/private', function () {
    // 这里的请求将通过CheckUserAgent中间件的验证
})->middleware('CheckUserAgent');
Copier après la connexion

我们还可以将中间件应用到路由组上,以同样的方式添加多个中间件。

Route::middleware(['CheckUserAgent', 'CheckPermissions'])->group(function () {
    // 这里的请求将依次通过CheckUserAgent和CheckPermissions中间件的验证
});
Copier après la connexion

四、全局中间件
除了将中间件应用到某个路由或路由组上,我们还可以将中间件注册为全局中间件,以在每个请求到达应用程序之前执行。要注册一个全局中间件,我们需要将中间件类添加到应用程序的全局中间件列表中。打开app/Http/Kernel.php文件,找到$middleware

protected $middleware = [
    // ...
    AppHttpMiddlewareCheckUserAgent::class,
];
Copier après la connexion
Une fois la commande terminée, nous obtenons une classe middleware nommée CheckUserAgent située dans le app/Http/Middleware. Nous pouvons ajouter les opérations que nous souhaitons effectuer dans la méthode handle de cette classe, comme vérifier si l'agent utilisateur (User-Agent) est légal.

rrreee
Dans l'exemple ci-dessus, nous obtenons le User-Agent demandé et vérifions qu'il est égal à MyApplication. Si la validation échoue, nous renvoyons une réponse d’erreur 400 ; sinon, nous passons au prochain middleware ou gestionnaire de route.

🎜3. Utiliser le middleware🎜Une fois que nous avons écrit la classe middleware, nous pouvons l'appliquer à la route ou au contrôleur. Dans Laravel, nous pouvons utiliser la méthode middleware pour appliquer un middleware à une route ou un groupe de routes. Par exemple, nous pouvons appliquer le middleware CheckUserAgent à une route : 🎜rrreee🎜 Nous pouvons également appliquer le middleware à un groupe de routage et ajouter plusieurs middlewares de la même manière. 🎜rrreee🎜4. Middleware global🎜En plus d'appliquer un middleware à une certaine route ou groupe de routes, nous pouvons également enregistrer le middleware en tant que middleware global à exécuter avant que chaque requête n'atteigne l'application. Pour enregistrer un middleware global, nous devons ajouter la classe middleware à la liste globale des middlewares de l'application. Ouvrez le fichier app/Http/Kernel.php, recherchez l'attribut $middleware et ajoutez notre classe middleware : 🎜rrreee🎜 5. Conclusion 🎜Le middleware fournit un moyen simple et puissant pour protéger vos applications Laravel contre les attaques malveillantes. En écrivant et en utilisant un middleware, nous pouvons filtrer, valider et modifier les demandes et les réponses, améliorant ainsi la sécurité et la fiabilité de nos applications. J'espère que cet article pourra vous aider à comprendre les concepts du middleware Laravel et vous fournir des conseils sur la sécurisation de votre application. 🎜

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!

Étiquettes associées:
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