Yii 2

In questa guida, ti fornirò alcune idee su come implementare il firewall Shieldon nella tua applicazione Yii.

Firewall nel framework Yii

Installazione

Utilizza PHP Composer:

composer require shieldon/shieldon

Questo installerà anche le dipendenze necessarie per Shieldon:

Implementazione

Yii 2

1. Prima di inizializzare il kernel

Nel tuo file public/index.php, prima di questa riga:

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

Aggiungi il seguente codice:

Esempio:

/*
|--------------------------------------------------------------------------
| Esegui il firewall Shieldon
|--------------------------------------------------------------------------
|
| Il firewall Shieldon monitorerà tutte le richieste HTTP che arrivano al tuo sito web.
| Eseguire il firewall Shieldon prima di inizializzare Yii eviterà possibili conflitti con le funzioni integrate di Yii.
*/

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

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

    // L'URL di base per il pannello di controllo.
    $firewall->controlPanel('/firewall/panel/');

    $response = $firewall->run();

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

2. Definisci un percorso per il pannello del firewall

Crea un controller chiamato FirewallPanelController.

Esempio:

<?php

namespace app\controllers;

use yii\web\Controller;

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

        return parent::beforeAction($action);
    }

    /**
     * Il punto di ingresso del pannello del firewall.
     *
     * @return string
     */
    public function actionPanel()
    {
        $panel = new \Shieldon\Firewall\Panel();
        $panel->entry();
    }
}

Assicurati che enablePrettyUrl sia impostato su true nel tuo file config/web.php.

Esempio:

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

Questo è tutto.

Puoi accedere al pannello del firewall visitando /firewall-panel nel tuo browser.

Pannello di Controllo

https://yourwebsite.com/firewall-panel

Il nome utente predefinito è shieldon_user, e la password è shieldon_pass. Dopo aver effettuato l'accesso al pannello del firewall, la prima cosa da fare è cambiare il nome utente e la password.

Se il firewall Shieldon è abilitato nella sezione di configurazione Daemon, inizierà a monitorare il tuo sito web. Assicurati di aver configurato correttamente le impostazioni.