CakePHP

CakePHP ist ein weit verbreitetes Open-Source-Webframework, das dem MVC-Architekturmuster folgt. Es genießt einen hohen Ruf in der PHP-Community und bietet eine Vielzahl von Funktionen und Tools zur Entwicklung von Webanwendungen.

Dieser Leitfaden wurde erfolgreich in der Version 3.8 von CakePHP getestet. Er ist jedoch auch auf ältere Versionen des Frameworks anwendbar.

Firewall im CakePHP-Framework

Installation

Verwenden Sie PHP Composer:

composer require shieldon/shieldon

Dies installiert auch die für Shieldon erforderlichen Abhängigkeiten:

  • shieldon/psr-http Die PSR-7, 15, 17 Implementierung mit vollständiger Dokumentation und umfangreichen Tests.
  • shieldon/event-dispatcher Der einfachste Event Dispatcher.
  • shieldon/web-security Eine Sammlung von Funktionen im Zusammenhang mit der Web-Sicherheit.
  • shieldon/messenger Eine Sammlung von Modulen zum Senden von Nachrichten an APIs oder Dienste von Drittanbietern wie Telegram, Line, RocketChat, Slack, SendGrid, MailGun und mehr.

Implementierung

CakePHP 3

Schritt 1 und Schritt 2 werden auf derselben Datei angewendet, die sich unter /config/route.php befindet.

Sowohl Schritt 1 als auch Schritt 2 beinhalten Änderungen an derselben Datei, die sich unter /config/routes.php befindet. Führen Sie daher die folgenden Schritte in dieser Datei aus:

  • Öffnen Sie die Datei /config/routes.php.
  • Suchen Sie den Abschnitt, in dem Sie Ihre Anwendungsrouten definieren.
  • Setzen Sie die in Schritt 1 und Schritt 2 beschriebenen Änderungen gemäß den bereitgestellten Anweisungen um.
  • Speichern Sie die Änderungen in der Datei /config/routes.php.

Durch Befolgen dieser Schritte stellen Sie sicher, dass beide Änderungen in der richtigen Datei vorgenommen werden.

1. Middleware registrieren

Eine Middleware für CakePHP finden Sie hier. Registrieren Sie sie einfach in Ihrer Anwendung.

Beispiel:

/**
 * Shieldon Firewall auf den aktuellen Routenbereich anwenden.
 */
$routes->registerMiddleware(
    'firewall',
    new \Shieldon\Firewall\Integration\CakePhp()
);

$routes->applyMiddleware('firewall');

2. Route für Firewall-Panel definieren

Beispiel:

/**
 * Die Route für das Firewall-Panel definieren.
 */
$routes->connect('/firewall/panel/', [
    'controller' => 'FirewallPanel',
    'action' => 'entry'
]);

3. Controller für das Firewall-Panel erstellen

Erstellen Sie einen Controller namens FirewallPanelController und fügen Sie den folgenden Code hinzu.

Beispiel:

$panel = new \Shieldon\Firewall\Panel();
$panel->entry();
exit;

Fügen Sie diese Zeilen hinzu, wenn CSRF aktiviert ist:

Beispiel:

$panel->csrf(
    '_csrfToken',
    $this->request->getParam('_csrfToken')
);

Das vollständige Beispiel sieht wie folgt aus:

Beispiel:

<?php

namespace App\Controller;

class FirewallPanelController extends AppController
{
    /**
     * Dies ist der Einstiegspunkt unseres Firewall-Panels.
     */
    public function entry()
    {
        // Firewall-Panel aufrufen.
        $panel = new \Shieldon\Firewall\Panel();

        $panel->csrf([
            '_csrfToken' => $this->request->getParam('_csrfToken')
        ]);

        $panel->entry();
        exit;
    }
}

Das war's.

Sie können auf das Firewall-Panel unter /firewall/panel zugreifen. Öffnen Sie diese URL in Ihrem Browser, um die Seite anzuzeigen.

Kontrollpanel

https://for.example.com/firewall/panel

Der Standard-Login ist shieldon_user und das Passwort ist shieldon_pass. Nachdem Sie sich im Firewall-Panel angemeldet haben, sollten Sie als Erstes den Login und das Passwort ändern.

Wenn die Shieldon Firewall in den Einstellungen für den Daemon aktiviert ist, beginnt sie mit der Überwachung Ihrer Website. Stellen Sie sicher, dass Sie die Einstellungen korrekt konfiguriert haben.