Yii 2

In diesem Leitfaden werde ich Ihnen einige Ideen geben, wie Sie die Shieldon Firewall in Ihrer Yii-Anwendung implementieren können.

Firewall in Yii 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 Drittanbieter-APIs oder -Dienste wie Telegram, Line, RocketChat, Slack, SendGrid, MailGun und mehr.

Implementierung

Yii 2

1. Vor der Initialisierung des Kernels

In Ihrer public/index.php Datei, vor dieser Zeile:

require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php';

fügen Sie den folgenden Code hinzu:

Beispiel:

/*
|--------------------------------------------------------------------------
| Führen Sie die Shieldon Firewall aus
|--------------------------------------------------------------------------
|
| Die Shieldon Firewall überwacht alle HTTP-Anfragen, die zu Ihrer Website kommen.
| Das Ausführen der Shieldon Firewall vor der Initialisierung von Yii vermeidet mögliche Konflikte mit den integrierten Funktionen von Yii.
*/

if (isset($_SERVER['REQUEST_URI'])) {
    $storage = __DIR__ . '/../runtime/shieldon';

    $firewall = new \Shieldon\Firewall\Firewall();
    $firewall->configure($storage);

    // Die Basis-URL für das Kontrollpanel.
    $firewall->controlPanel('/firewall/panel/');

    $response = $firewall->run();

    if ($response->getStatusCode() !== 200) {
        $httpResolver = new \Shieldon\Firewall\HttpResolver();
        $httpResolver($response);
    }
}

2. Definieren Sie eine Route für das Firewall-Panel

Erstellen Sie einen Controller namens FirewallPanelController.

Beispiel:

<?php

namespace app\controllers;

use yii\web\Controller;

class FirewallController extends Controller
{
    public function beforeAction($action)
    {
        $this->enableCsrfValidation = false;

        return parent::beforeAction($action);
    }

    /**
     * Der Einstiegspunkt des Firewall-Panels.
     *
     * @return string
     */
    public function actionPanel()
    {
        $panel = new \Shieldon\Firewall\Panel();
        $panel->entry();
    }
}

Stellen Sie sicher, dass enablePrettyUrl in Ihrer Datei config/web.php auf true gesetzt ist.

Beispiel:

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [
        'firewall/panel/' => 'firewall/panel',
        'firewall/panel/<slug:.*>' => 'firewall/panel',
    ],
],

Das ist alles.

Sie können auf das Firewall-Panel zugreifen, indem Sie /firewall-panel in Ihrem Browser besuchen.

Kontrollpanel

https://yourwebsite.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 des Daemon aktiviert ist, beginnt sie mit der Überwachung Ihrer Website. Stellen Sie sicher, dass Sie die Einstellungen korrekt konfiguriert haben.