Sichern Sie Ihre Anwendung mit CSRF auf Lithe

Linda Hamilton
Freigeben: 2024-11-10 06:38:02
Original
822 Leute haben es durchsucht

Protegendo sua Aplicação com CSRF no Lithe

In diesem Tutorial erfahren Sie, wie Sie den CSRF-Schutz (Cross-Site Request Forgery) in Lithe implementieren, um zu verhindern, dass in Ihrer Anwendung unerwünschte Anfragen gestellt werden. Dieser Leitfaden ist für Anfänger gedacht, also gehen wir in Teilen vor!


Was ist CSRF?

CSRF oder Cross-Site Request Forgery ist eine Angriffsart, bei der ein Benutzer dazu verleitet wird, eine nicht autorisierte Aktion auf einer Website auszuführen, auf der er authentifiziert ist. Dieser Angriff ist gefährlich, da der Angreifer Daten manipulieren oder auf gesperrte Bereiche zugreifen kann. Um dies zu verhindern, haben wir eine Sicherheitsschicht hinzugefügt, die die Verarbeitung verdächtiger Anfragen verhindert.


Aufbau des Tutorials

  1. Lithe konfigurieren
  2. CSRF-Middleware installieren
  3. Fügen Sie das CSRF-Token im Backend hinzu
  4. Überprüfen Sie den Token im Backend
  5. Senden Sie den Token über das Frontend
  6. CSRF-Schutz testen

Lasst uns anfangen!


Schritt 1: Lithe konfigurieren

Wenn Sie Lithe noch nicht konfiguriert haben, beginnen Sie mit der Installation des Frameworks mit dem folgenden Befehl:

composer create-project lithephp/lithephp nome-do-projeto
cd nome-do-projeto
Nach dem Login kopieren
Nach dem Login kopieren

Dadurch entsteht eine Grundstruktur für Ihr Lithe-Projekt.


Schritt 2: Installieren der CSRF-Middleware

CSRF-Middleware hilft bei der Generierung und Validierung von CSRF-Tokens. Führen Sie zur Installation den folgenden Befehl im Terminal Ihres Projekts aus:

composer require lithemod/csrf
Nach dem Login kopieren
Nach dem Login kopieren

Schritt 3: Konfigurieren der CSRF-Middleware

Jetzt müssen wir Lithe mitteilen, dass wir die CSRF-Middleware verwenden möchten. Öffnen Sie die Hauptdatei src/App.php und fügen Sie die CSRF-Middleware hinzu.

use Lithe\Middleware\Security\csrf;
use function Lithe\Orbis\Http\Router\router;

$app = new \Lithe\App;

// Configura o middleware CSRF com verificação automática no corpo da requisição
$app->use(csrf([
    'expire' => 600, // Expiração do token após 10 minutos
    'checkBody' => true, // Habilita a verificação automática no corpo
    'bodyMethods' => ['POST', 'PUT', 'DELETE'], // Define os métodos para verificar o CSRF no corpo
]));

$app->use(router(__DIR__ . '/routes/web'));

$app->listen();
Nach dem Login kopieren

Damit ist die CSRF-Middleware in unserer Anwendung aktiv und jede Anfrage, die geschützt werden muss, muss ein gültiges Token enthalten.


Schritt 4: Generieren des CSRF-Tokens

Um den CSRF-Schutz zu nutzen, müssen wir ein eindeutiges Token generieren und es in Anfragen einschließen. Erstellen wir eine Route zum Senden eines Formulars, das automatisch das CSRF-Token enthält.

  1. Erstellen Sie eine Datei mit dem Namen src/routes/web.php und fügen Sie die Formularroute mit einem Feld für das CSRF-Token hinzu.
use Lithe\Http\{Request, Response};
use function Lithe\Orbis\Http\Router\get;

get('/form', function (Request $req, Response $res) {
    // Gera o campo de token CSRF
    $tokenField = $req->csrf->getTokenField();

    // Envia o HTML com o token incluído no formulário
    return $res->send("
        <form method='POST' action='/submit'>
            $tokenField
            <input type='text' name='data' placeholder='Digite algo' required>
            <button type='submit'>Enviar</button>
        </form>
    ");
});
Nach dem Login kopieren
  1. Diese Route erstellt ein Formular, das das CSRF-Token-Feld enthält. Das Feld ist für Lithe obligatorisch, um die Echtheit der Anfrage zu überprüfen.

Schritt 5: Überprüfen des Tokens im Backend

Beim Absenden des Formulars prüft Lithe automatisch, ob der Token gültig ist. Erstellen wir nun die Route, die das Formular empfängt und verarbeitet.

  1. Fügen Sie in derselben Datei src/routes/web.php die Route hinzu, um die Formularübermittlung zu verarbeiten.
composer create-project lithephp/lithephp nome-do-projeto
cd nome-do-projeto
Nach dem Login kopieren
Nach dem Login kopieren

Wenn das Token ungültig ist oder fehlt, blockiert Lithe automatisch die Anfrage und gibt einen Fehler zurück.


Schritt 6: Senden von Anfragen mit dem CSRF-Token

Wenn Sie im Frontend eine POST-Anfrage (oder eine andere Datenänderungsmethode) senden müssen, ist es wichtig, das CSRF-Token in den Anfragetext oder -header aufzunehmen, je nachdem, wie Sie Ihre Middleware konfiguriert haben.

Beispiel mit der JavaScript-Abruf-API

Für diejenigen, die JavaScript verwenden, ist hier ein Beispiel, wie das Token mit einer Abrufanforderung gesendet wird:

composer require lithemod/csrf
Nach dem Login kopieren
Nach dem Login kopieren

Schritt 7: Testen des CSRF-Schutzes

  1. Greifen Sie im Browser auf die /form-Route zu. Sie sehen das Formular mit dem enthaltenen CSRF-Token.
  2. Füllen Sie das Feld aus und senden Sie das Formular ab.
  3. Wenn alles funktioniert, sehen Sie eine Erfolgsmeldung mit den gesendeten Daten.

Zusammenfassung und abschließende Überlegungen

In diesem Tutorial lernen wir:

  • Was ist CSRF und warum ist es wichtig?
  • So konfigurieren Sie CSRF-Middleware in Lithe.
  • So generieren und überprüfen Sie CSRF-Tokens im Backend.
  • So senden Sie CSRF-Tokens mit Formularen und AJAX-Anfragen.

Mit diesem Schutz machen Sie Ihre Anwendung sicherer gegen CSRF-Angriffe und tragen so zum Schutz der Integrität der Daten Ihrer Benutzer bei.

Ausführlichere Informationen finden Sie in der offiziellen Lithe-Dokumentation.

Das obige ist der detaillierte Inhalt vonSichern Sie Ihre Anwendung mit CSRF auf Lithe. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage