Position actuelle: Accueil> Derniers articles> Comment utiliser le middleware pour empêcher les attaques de contrefaçon de demande de site transversal (CSRF) dans Slim Framework

Comment utiliser le middleware pour empêcher les attaques de contrefaçon de demande de site transversal (CSRF) dans Slim Framework

M66 2025-06-21

Utilisez du middleware pour empêcher les attaques du CSRF dans Slim Framework

La contrefaçon de demande de site transversal (CSRF) est une méthode courante de cyberattaque. Les attaquants obligent les utilisateurs à lancer des demandes malveillantes en exploitant des informations d'authentification des utilisateurs sur les sites Web connectés. Afin d'empêcher efficacement les attaques du CSRF, le framework Slim fournit un mécanisme de protection à l'aide de middleware. Cet article fournira des descriptions détaillées sur la façon d'implémenter la protection CSRF dans le cadre SLIM, y compris les étapes d'installation, la création de middleware, la configuration des applications et la vérification des jetons CSRF.

Étape 1: Installez le framework mince

Tout d'abord, nous devons installer le framework Slim via Composer. Exécutez la commande suivante dans le terminal pour créer un nouveau projet Slim:

Composer Create-Project Slim / Slim My-App

Étape 2: Créez du middleware CSRF

Dans le cadre mince, nous pouvons gérer la protection du CSRF à travers des mécanismes de middleware. Pour ce faire, nous devons créer un fichier middleware nommé csrfmiddleware.php . Tout d'abord, créez un répertoire appelé Middlewares dans le répertoire racine du projet et créez un fichier csrfmiddleware.php .

Voici un exemple de code pour le middleware CSRF:

<?php
namespace App\Middlewares;

class CsrfMiddleware extends SlimMiddlewareAntiCsrf
{
    public function call()
    {
        $this-> app-> hook (&#39;slim.before&#39;, [$ this, &#39;check&#39;]);
        $ this-> next-> call ();
    }

    fonction publique validatestorage ()
    {
        if (! $ this-> app-> View () -> getData (&#39;csrf_key&#39;) ||
            ! $ this-> app-> voir () -> getData (&#39;csrf_value&#39;)) {
            $ this-> app-> getlog () -> error («Erreur de validation CSRF: touche et / ou valeur CSRF manquantes»);
            $ this-> app-> pass ();
        }
    }
}

Étape 3: Enregistrer le middleware CSRF

Ensuite, vous devez enregistrer le middleware CSRF que vous venez de créer dans l'application SLIM. Ajoutez le code suivant dans le fichier index.php pour enregistrer le middleware:

$ app = new slimApp ();
...
$ app-> add (new app \ middlewares \ csrfmiddleware ());
...
$ app-> run ();

Étape 4: Ajouter le jeton CSRF pour former

Pour protéger la forme des attaques CSRF, nous devons ajouter un jeton CSRF à la forme. Ceci est réalisé en insérant des champs cachés dans la forme. Voici l'exemple de code pour ajouter un jeton CSRF:

<form action="/submit" method="post">
    <input type="hidden" name="csrf_key" value="{{ csrf_key }}">
    <input type="hidden" name="csrf_value" value="{{ csrf_value }}">
    <!-- Autres champs de forme -->
    <button type="submit">soumettre</button>
</form>

Étape 5: Vérifiez la validité du jeton CSRF

Côté serveur, nous devons vérifier que le jeton CSRF dans la demande soumis est valide. Voici un exemple de code de processeur de routage:

$ app-> post (&#39;/ soumi&#39;, fonction ($ request, $ réponse) {
    $ data = $ request-> getParsedBody (); // Obtenir les paramètres de demande // Vérifiez le jeton CSRF $ csrf_key = $ data [&#39;csrf_key&#39;];
    $ csrf_value = $ data [&#39;csrf_value&#39;];

    if (! $ app-> csrf-> chèque ($ csrf_key, $ csrf_value)) {
        // Vérification du jeton CSRF a échoué $ Response-> getBody () -> write (&#39;CSRF validation failli&#39;);
        retour $ réponse-> Withstatus (403);
    }

    // Traite la soumission du formulaire // ...

    $ réponse-> getBody () -> write (&#39;formulaire soumis avec succès&#39;);
    retour $ réponse;
});

Résumer

En utilisant le middleware dans le framework Slim, nous pouvons facilement implémenter la protection du CSRF. Créez d'abord le middleware CSRF pour vérifier et traiter le jeton, puis ajouter les jetons CSRF au formulaire pour assurer la sécurité des demandes de l'utilisateur. De cette façon, le cadre mince peut prévenir efficacement les attaques du CSRF et améliorer la sécurité de l'application.